Почему параллельное сканирование CTE и временных таблиц ограничено?
Из руководства PostgreSQL :
Следующие операции всегда параллельны ограничены:
Сканирование общих табличных выражений (CTE).
Сканы временных таблиц.
Почему ограничено параллельное сканирование CTE и временных таблиц?
2 ответа
Параллельно с ограничениями
Сканы по таблицам CTE и Temp:
Причина в том, что и CTE, и временные таблицы являются частными для внутреннего процесса, который их создал, а параллельные рабочие процессы - это разные процессы, которые не имеют доступа к частным ресурсам ведущего процесса.
Чтобы сделать CTE-сканирование параллельным безопасным, CTE должны быть материализованы в общей памяти.
/questions/53001085/obschij-parallelizm-s-cte-postgresql/53001093#53001093
Обратите внимание, что сканирование CTE является препятствием только в том случае, если оно все еще существует после планирования. Если синтаксис CTE был «встроен» во время планирования, это не препятствие для параллелизма. Интересно, нужно ли изменить документы, чтобы прояснить это?