Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
从PostgreSQL 手册:
以下操作始终受到并行限制: 公用表表达式 (CTE) 的扫描。 扫描临时表。
以下操作始终受到并行限制:
公用表表达式 (CTE) 的扫描。
扫描临时表。
为什么限制 CTE 和临时表的并行扫描?
请注意,如果 CTE 扫描在计划后仍然存在,则它们只是一个障碍。如果 CTE 语法在规划期间是“内联的”,则它不是并行的障碍。我想知道是否应该更改文档以澄清这一点?
并行受限
扫描 CTE 和 Temp 表:
原因是 CTE 和临时表对于创建它们的后端进程都是私有的,并且并行工作进程是不同的进程,它们无法访问领导进程的私有资源。
为了使 CTE 扫描并行安全,CTE 必须在共享内存中实现。
https://stackoverflow.com/a/58445299/11094058