| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
|---|---|
| To: | Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> | 
| Cc: | pgsql-hackers(at)postgreSQL(dot)org | 
| Subject: | Re: [HACKERS] GEQO optimizer (was Re: Backend message type 0x44 arrived while idle) | 
| Date: | 1999-05-22 23:48:59 | 
| Message-ID: | 19235.927416939@sss.pgh.pa.us | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> writes:
>> I have observed that the regular optimizer requires about 50MB to plan
>> some ten-way joins, and can exceed my system's 128MB process data limit
>> on some eleven-way joins.  We currently have the GEQO threshold set at
>> 11, which prevents the latter case by default --- but 50MB is a lot.
>> I wonder whether we shouldn't back the GEQO threshold off to 10.
>> (When I suggested setting it to 11, I was only looking at speed relative
>> to GEQO, not memory usage.  There is now a *big* difference in memory
>> usage...)  Comments?
> You chose 11 by comparing GEQO with non-GEQO.  I think you will find
> that with your improved GEQO, GEQO is faster for smaller number of
> joins, preventing the memory problem.  Can you check the speeds again?
Bruce, I have rerun a couple of tests and am getting numbers like these:
# tables joined
... 10 11 ...
STD OPTIMIZER		24	115
GEQO			45	55
This is after tweaking the GEQO parameters to improve speed slightly
in the default case.  (Setting EFFORT=LOW reduces the 11-way plan time
to about 40 sec, setting EFFORT=HIGH makes it about 70.)
The breakpoint for speed is still clearly at GEQO threshold 11.
*However*, the regular optimizer uses close to 120MB of memory to
plan these 11-way joins, and that's excessive (especially since that's
not even counting the space that will be used for execution...).
Until we can do something about reclaiming space more effectively,
I recommend reducing the default GEQO threshold to 10.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Ole Gjerde | 1999-05-23 00:30:44 | Sequence nexvtal() and initdb/pg_proc problem | 
| Previous Message | Tom Lane | 1999-05-22 14:45:51 | Re: [HACKERS] DEFAULT fixed |