为什么 CTE 和临时表并行扫描受到限制?
Why are scans of CTEs and temporary tablest parallel restricted?
The following operations are always parallel restricted:
Scans of common table expressions (CTEs).
Scans of temporary tables.
为什么 CTE 和临时表的并行扫描受到限制?
并行限制
CTE 和临时表扫描:
原因是 CTE 和临时表对于创建它们的后端进程都是私有的,而并行工作进程是不同的进程,它们无权访问领导进程的私有资源。
为了使 CTE 扫描并行安全,CTE 必须在共享内存中具体化。
请注意,如果 CTE 扫描在计划后仍然存在,那么它们只是一个障碍。如果 CTE 语法在规划期间被“内联”,则它不是并行的障碍。我想知道是否应该更改文档以澄清这一点?
The following operations are always parallel restricted:
Scans of common table expressions (CTEs).
Scans of temporary tables.
为什么 CTE 和临时表的并行扫描受到限制?
并行限制
CTE 和临时表扫描:
原因是 CTE 和临时表对于创建它们的后端进程都是私有的,而并行工作进程是不同的进程,它们无权访问领导进程的私有资源。
为了使 CTE 扫描并行安全,CTE 必须在共享内存中具体化。
请注意,如果 CTE 扫描在计划后仍然存在,那么它们只是一个障碍。如果 CTE 语法在规划期间被“内联”,则它不是并行的障碍。我想知道是否应该更改文档以澄清这一点?