Re: SQL performance issue (postgresql chooses a bad plan when a better one is available)

Поиск
Список
Период
Сортировка
От Laurenz Albe
Тема Re: SQL performance issue (postgresql chooses a bad plan when a better one is available)
Дата
Msg-id aed084845c68eb61ffe1c31938f7dca80bc6abb4.camel@cybertec.at
обсуждение исходный текст
Ответ на SQL performance issue (postgresql chooses a bad plan when a better one is available)  (Chris Stephens <cstephens16@gmail.com>)
Ответы Re: SQL performance issue (postgresql chooses a bad plan when a better one is available)
Список pgsql-performance
On Mon, 2021-03-22 at 08:10 -0500, Chris Stephens wrote:
> The following SQL takes ~25 seconds to run. I'm relatively new to postgres
>  but the execution plan (https://explain.depesz.com/s/N4oR) looks like it's
>  materializing the entire EXISTS subquery for each row returned by the rest
>  of the query before probing for plate_384_id existence. postgres is
>  choosing sequential scans on sample_plate_384 and test_result when suitable,
>  efficient indexes exist. a re-written query produces a much better plan
>  (https://explain.depesz.com/s/zXJ6). Executing the EXISTS portion of the
>  query with an explicit PLATE_384_ID yields the execution plan we want as
>  well (https://explain.depesz.com/s/3QAK). unnesting the EXISTS and adding
>  a DISTINCT on the result also yields a better plan.

Great!  Then use one of the rewritten queries.

Yours,
Laurenz Albe
-- 
Cybertec | https://www.cybertec-postgresql.com




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

Предыдущее
От: Chris Stephens
Дата:
Сообщение: SQL performance issue (postgresql chooses a bad plan when a better one is available)
Следующее
От: Chris Stephens
Дата:
Сообщение: Re: SQL performance issue (postgresql chooses a bad plan when a better one is available)