Re: Turning the PLANNER off - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: Turning the PLANNER off
Date
Msg-id 200210290055.g9T0t2G26762@candle.pha.pa.us
Whole thread Raw
In response to Turning the PLANNER off  (Ben McMahan <mcmahanb@cs.rice.edu>)
Responses Re: Turning the PLANNER off  (David Walker <pgsql@grax.com>)
Re: Turning the PLANNER off  ("Ross J. Reedstrom" <reedstrm@rice.edu>)
List pgsql-hackers
That is a good question.  The planner does more than just analyse the
query.  It generates the Plan used by the executor, so that can't be
removed.

It is always a pain when the optimizer/planner takes longer than the
executor. We do have PREPARE/EXECUTE in 7.3beta for you to use.


---------------------------------------------------------------------------

Ben McMahan wrote:
> I'm looking at different ways of optimizing queries with a large number of
> joins.  I write the same query in a number of different ways and compare
> the running times.  Now the problem is I do not want the optimizer
> changing the queries.  So I explicit state the order of the joins in the
> FROM clause.  I also turn off everything I can except for one type of join
> (say hash join), and I've turned off geqo.  But I find that the PLANNER
> still takes an enormous amount of time for some queries.  It doesn't look
> like the Planner is actually optimizing (changing) anything, but just in
> case, I was wondering if there was a way to turn off the PLANNER.
> 
> Note, when I say an enormous amount of time, I mean at least double the
> time the EXECUTOR takes to actually answer the query.
> 
> Thanks for your help,
> 
> Ben McMahan
> 
> ps. here is a small example of what my queries look like (so you can see
> if there is something else it might be deciding on):
> 
> SELECT DISTINCT c0.x1 , c1.x2 , c0.x3 , c0.x4 , c2.x5
> FROM r1 c4 (x4,x2,x5) JOIN (r0 c3 (x2,x3,x5) JOIN (r2 c2 (x3,x1,x5) JOIN (r1 c1
> (x4,x1,x2) JOIN r1 c0 (x1,x3,x4)
> ON ( c0.x4 = c1.x4  AND  c0.x1 = c1.x1 ))
> ON ( c0.x3 = c2.x3  AND  c0.x1 = c2.x1 ))
> ON ( c1.x2 = c3.x2  AND  c0.x3 = c3.x3  AND  c2.x5 = c3.x5 ))
> ON ( c0.x4 = c4.x4  AND  c1.x2 = c4.x2  AND  c2.x5 = c4.x5 );
> 
> A quick reminder, FROM r1 c4 (x4,x2,x5) just renames a table r1 into c4
> where it also renames the columns to x4, x2, and x5 respectively.
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
> 

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073
 


pgsql-hackers by date:

Previous
From: Andrew Sullivan
Date:
Subject: Re: Request for supported platforms
Next
From: Bruce Momjian
Date:
Subject: Re: Request for supported platforms