SQL查询并行优化全解析
1. 并行与查询优化概述
在查询处理器执行并行查询计划之前,查询优化器必须先生成该计划。此过程比串行查询计划的生成更为复杂和微妙。作为处理并行查询的开发者,了解其中原理有助于有效解决问题。
是否在查询计划中使用并行性的决策,大多在查询处理器执行计划之前做出,它基于实例级(或资源管理器工作负载组级)设置和具体查询。实际运行计划的执行引擎对是否使用并行性影响很小,只有在 SQL Server 实例面临极端资源压力时才会否决使用并行性。
2. 并行性设置
影响并行性的实例级设置有四个,可在 sys.configurations 目录视图中查看,并使用 sp_configure 系统存储过程进行配置:
|设置名称|作用|默认值|
| ---- | ---- | ---- |
|Affinity Mask|控制服务器的哪些逻辑处理器将映射到 SQLOS 调度程序。若仅映射一个处理器,查询优化器不会尝试生成并行查询计划。|0,表示所有逻辑处理器都应映射到 SQLOS 调度程序。|
|Max Degree of Parallelism|为并行查询确定每个并行区域分配的工作线程数量。可通过查询级 MAXDOP 提示覆盖。|0,意味着并行计划的每个区域可使用多达 64 个在线 SQLOS 调度程序的线程。|
|Cost Threshold for Parallelism|优化查询计划时,若串行计划成本低于该阈值,优化器将停止并行优化阶段。|5,即只有成本高于 5 的串行计划才会进入并行优化阶段。|
|
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



