8.4 semi-join slows down query performance (EXISTS)

Поиск
Список
Период
Сортировка
От vacuum@quantentunnel.de
Тема 8.4 semi-join slows down query performance (EXISTS)
Дата
Msg-id 20090421093806.260250@gmx.net
обсуждение исходный текст
Ответы Re: 8.4 semi-join slows down query performance (EXISTS)  (Guillaume Smet <guillaume.smet@gmail.com>)
Re: 8.4 semi-join slows down query performance (EXISTS)  (Alvaro Herrera <alvherre@commandprompt.com>)
Список pgsql-hackers
Hello folk,

I migrate a pg 8.3 database to a pg 8.4 backend for testing. All works fine except changes or new features of the
planner.

There are two tables. The first (A) stores "data" - second table (B) holds (forinstance) "structure" information and
referencesto A by defining foreign-key constraint(s). 

I've queries returning tupels of A, with a (sub-)selected constant-expression that indicates whether a referenced tupel
existsin B or not. For this issue the EXISTS clause is used. 

In past (8.3) the planner resolves this into index-scans using existing foreign-key indices -> fast query (1.5 seconds
forcomparison). Now (in 8.4) the planner wants "semi-joins". Index-scans are not longer used and my query needs 600
secondsto return. 

I attached two plans of the identical query - executed in 8.3 and 8.4 as well as the query itself.

You will see some more differences between planning in 8.3 and 8.4. The differences relating this mail you can find at
theend of the plans. 

thanks

--
Neu: GMX FreeDSL Komplettanschluss mit DSL 6.000 Flatrate + Telefonanschluss für nur 17,95 Euro/mtl.!*
http://dslspecial.gmx.de/freedsl-surfflat/?ac=OM.AD.PD003K11308T4569a

Вложения

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

Предыдущее
От: Pavel Stehule
Дата:
Сообщение: Re: Extend PL/pgSQL
Следующее
От: Abhijit Menon-Sen
Дата:
Сообщение: Re: [PATCH] Add a test for pg_get_functiondef()