Re: [INTERFACES] Slow join query optimisation? - Mailing list pgsql-interfaces

From Tom Lane
Subject Re: [INTERFACES] Slow join query optimisation?
Date
Msg-id 17643.943681001@sss.pgh.pa.us
Whole thread Raw
In response to Slow join query optimisation?  (Douglas Thomson <dougt@mugc.cc.monash.edu.au>)
Responses Re: [INTERFACES] Slow join query optimisation?  (Douglas Thomson <dougt@mugc.cc.monash.edu.au>)
Re: [INTERFACES] Slow join query optimisation?  (Douglas Thomson <dougt@mugc.cc.monash.edu.au>)
List pgsql-interfaces
Douglas Thomson <dougt@mugc.cc.monash.edu.au> writes:
> My question for the list: Is there something in the query optimiser
> that will take a time that is something like exponential on the number
> of tables being joined?

Yes.  See the manual's discussion of genetic query optimization.  You
might try setting the GEQO threshold to something less than 10.

FWIW, the time you are looking at here is strictly planning time and
will not increase when you actually put data in the tables.  Unless
you foresee fairly small final tables, the planning time is not likely
to be a significant factor in this range of query sizes.

Still, if the purpose of the join is just to substitute descriptions
for IDs, you'd be well advised to consider doing it via table lookup
on the frontend side, assuming your frontend is coded in a language
that makes that reasonable to do.  The Postgres optimizer cannot
help but waste many cycles per query reverse-engineering your intent,
even assuming that it ultimately comes up with the best possible
query plan for the join...
        regards, tom lane


pgsql-interfaces by date:

Previous
From: Douglas Thomson
Date:
Subject: Slow join query optimisation?
Next
From: "Patrick Welche"
Date:
Subject: Re: [INTERFACES] Spanish format on date and numbers