Почему параллельное сканирование CTE и временных таблиц ограничено?

Из руководства PostgreSQL :

Следующие операции всегда параллельны ограничены:

  • Сканирование общих табличных выражений (CTE).

  • Сканы временных таблиц.

Почему ограничено параллельное сканирование CTE и временных таблиц?

2 ответа

Решение

Параллельно с ограничениями

Сканы по таблицам CTE и Temp:

Причина в том, что и CTE, и временные таблицы являются частными для внутреннего процесса, который их создал, а параллельные рабочие процессы - это разные процессы, которые не имеют доступа к частным ресурсам ведущего процесса.

Чтобы сделать CTE-сканирование параллельным безопасным, CTE должны быть материализованы в общей памяти.

/questions/53001085/obschij-parallelizm-s-cte-postgresql/53001093#53001093

Обратите внимание, что сканирование CTE является препятствием только в том случае, если оно все еще существует после планирования. Если синтаксис CTE был «встроен» во время планирования, это не препятствие для параллелизма. Интересно, нужно ли изменить документы, чтобы прояснить это?

Другие вопросы по тегам