launchpad-dev team mailing list archive
-
launchpad-dev team
-
Mailing list archive
-
Message #08297
Re: UI simplification to "fix" a timeout
Le 09/11/2011 08:12, Ian Booth a écrit :
> Hi
>
> Let me rephrase the question - for a simple count of owned branches, I
> can't see a need to do all the stuff shown in the queries on the timeout
> oops. I mean, selecting the entire column set from the query table(s)
> just to do a count(*) on the rows returned seems pretty dumb, and I'd be
> surprised if there weren't performance issues like those we are seeing
> on large result sets.
>
> So, I still wonder whether
> a)
> select count(*) from branch
> where branch.owner in (
> select team from teamparticipation where person = %d)
> is really that expensive, and
Well, this is a more complex query than the one you suggest here but if
you take a look at the query/explain analyse below, you will see that
the expensive part is the Seq scan that owner=XXX and NOT
transitively_private generates. Having looked at this with jtv and
lifeless it seems that there is now way to have this count query
performing well.
The query: https://pastebin.canonical.com/54885/
The EXPLAIN ANALYSE: https://pastebin.canonical.com/54886/
References