Ответ 1
"Сканирование CTE" представляет собой последовательное сканирование материализованных результатов термина CTE (названный раздел, такой как "blah" в CTE, как WITH blah AS (SELECT ...)
.
Материализованный означает, что PostgreSQL рассчитал результаты и превратил их во временный массив строк, это не просто использование CTE, как представление.
Основной вывод заключается в том, что выбор небольшого подмножества из термина CTE и отбрасывание остального может сделать много потраченных впустую работ, потому что части, которые вы отбрасываете, все равно должны быть полностью рассчитаны.
Подробнее см. недавнее сообщение в блоге, которое я написал по этой теме.