New results for GEQO threshold

Поиск
Список
Период
Сортировка
От Tom Lane
Тема New results for GEQO threshold
Дата
Msg-id 12540.918696356@sss.pgh.pa.us
обсуждение исходный текст
Список pgsql-hackers
After Bruce's fine piece of detective work in finding a bogus keylist
comparison routine, the Postgres optimizer runs a *lot* faster than
before.

>> We have to bump the default value of GEQO threshold up again...
>> it's way too low now...

> Yes.  I need to know what value to set it at.  Do you have some way
> to test that.

I ran some variants of Charles Hornberger's multiway join that started
the whole discussion.  Run times (with profiling on, but that shouldn't
affect the ratios much) now look like

GEQO off            # Indexes available

# Tables        0    12    13    14    15    16

7            1.6    2.0
8            3.6    4.5    4.3
9            10.7    12.3        12.3
10            51.2    55.0            54.2
11            224.4    227.6                213.9

(For reference, the comparable run time for the 7t/12i case was 2630 sec
before Bruce fixed it!  It's not every day that you see a 1300:1 speedup
from changing a couple lines of code...)

As you can see, the number of indexes is no longer a significant factor
in the optimizer's runtime.  I therefore recommend that we revert the
GEQO threshold computation back to the way it was: just use the number
of tables involved.  Simple, quick, easy to understand.

The next question is what the default GEQO threshold value ought to be.
I ran the same tests with and without GEQO; with GEQO on, the runtimes
look like

GEQO on                # Indexes available

# Tables        0    12    13    14    15    16

7            9.4    12.3
8            17.8    22.8    23.1
9            45.9    61.9        59.6
10            58.5    74.9            72.9
11            71.6    79.3                77.9

So, assuming this is a reasonably representative case, it looks like
GEQO should kick in at a threshold of 11 tables.
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: [HACKERS] Multiples concatenation operator (||)
Следующее
От: Ryan Bradetich
Дата:
Сообщение: interface libpq Makefile.in patch