Re: [HACKERS] GEQO optimizer (was Re: Backend message type 0x44 arrived while idle)

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: Raw Message | Whole Thread | 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

Responses

Browse pgsql-hackers by date

  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