second CTE kills perf

Поиск
Список
Период
Сортировка
От Nicolas Seinlet
Тема second CTE kills perf
Дата
Msg-id KJasd1rgyZASsWz7cdAdWDy9iCxVuSW4WdIatFAwGJjYg-9nYe7pVdNkuOXYcrSUz6u2kf91e-5rSTwmKy32nYDFBitSPKR4K5KFKMrgv7s=@seinlet.com
обсуждение исходный текст
Ответы Re: second CTE kills perf  (Vijaykumar Jain <vijaykumarjain.github@gmail.com>)
Re: second CTE kills perf  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
Hello,

I'm trying to understand this behaviour and the limits of CTE, when they reach the limits, when they cannot receive
parametersfrom a caller, ... I'm running a query on PostgreSQL 10 with a cte. the query runs in ~ 10 seconds. If I add
asecond CTE with the same query as the previous one and select * from second_cte as query, it now runs in ~ 10 minutes. 

oversimplified example:
10 seconds version:
| WITH cte1 AS (SELECT x,y,z FROM table) SELECT row_number() over(),x,y,z FROM cte1 WHERE x=32;

10 minutes version:
| WITH cte1 AS (SELECT x,y,z FROM table), cte2 AS (SELECT row_number() over(),x,y,z FROM cte1) SELECT * FROM cte2 WHERE
x=32;

The real examples, with query plans:
https://explain.dalibo.com/plan/98A
https://explain.dalibo.com/plan/o6X4

Thanks for your time,

Nicolas Seinlet.
Вложения

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

Предыдущее
От: Mike Yeap
Дата:
Сообщение: Postgres PANIC when it could not open file in pg_logical/snapshots directory
Следующее
От: Vijaykumar Jain
Дата:
Сообщение: Re: Postgres PANIC when it could not open file in pg_logical/snapshots directory