Re: join over 12 tables takes 3 secs to plan - Mailing list pgsql-performance

From Neil Conway
Subject Re: join over 12 tables takes 3 secs to plan
Date
Msg-id 1309.24.112.166.30.1041540084.squirrel@mailbox.samurai.com
Whole thread Raw
In response to join over 12 tables takes 3 secs to plan  (Hilmar Lapp <hlapp@gmx.net>)
Responses Re: join over 12 tables takes 3 secs to plan  (Hilmar Lapp <hlapp@gmx.net>)
List pgsql-performance
Hilmar Lapp said:
> I have a query generated by an application (not mine, but there's
> nothing I can find that looks bad about the query itself) that takes an
> excessive amount of time to return even though there are almost no rows
> in the schema yet.

Yes -- an exhaustive search to determine the correct join order for a
multiple relation query is similar to solving the traveling salesman
problem (only more difficult, due to the availability of different join
algorithms, etc.). GEQO should be faster than the default optimizer for
large queries involving large numbers of joins, but it's still going to
take a fair bit of time.

In other words, it's not a surprise that a 12-relation join takes a little
while to plan.

> I'm running Postgres 7.3.1 on Mac OSX.

Tom recently checked in some optimizations for GEQO in CVS HEAD, so you
could try using that (or at least testing it, so you have an idea of what
7.4 will perform like).

You could also try using prepared queries.

Finally, there are a bunch of GEQO tuning parameters that you might want
to play with. They should allow you to reduce the planning time a bit, in
exchange for possibly generating an inferior plan.

Cheers,

Neil



pgsql-performance by date:

Previous
From: Tom Lane
Date:
Subject: Re: join over 12 tables takes 3 secs to plan
Next
From: "Steve Wolfe"
Date:
Subject: Re: Question on hardware & server capacity