SQL 查询并行优化全解析
1. 并行性与查询优化基础
在查询处理器执行并行查询计划之前,查询优化器需要先生成该计划。这个过程比串行查询计划的生成更为复杂。是否在查询计划中使用并行性,主要在查询处理器执行计划之前就已决定,这取决于实例级(或资源管理器工作负载组级)设置以及具体的查询。执行引擎在是否使用并行性方面的话语权较小,只有在 SQL Server 实例面临极端资源压力时才会否决并行性的使用。
2. 并行性设置
影响并行性的实例级设置有四个,可在 sys.configurations 目录视图中查看,并使用 sp_configure 系统存储过程进行配置:
- Affinity Mask :控制服务器的哪些逻辑处理器将映射到 SQLOS 调度程序。并行查询计划需要多个 SQLOS 调度程序,若该掩码设置为仅映射单个处理器,查询优化器将不会尝试生成并行查询计划。默认值为 0,表示所有逻辑处理器都应映射到 SQLOS 调度程序。
- Max Degree of Parallelism :是并行查询用于确定每个并行区域分配多少工作线程的默认值。可使用查询级 MAXDOP 提示覆盖此设置。默认值为 0,意味着并行计划的每个区域最多可使用 64 个在线 SQLOS 调度程序对应的线程数。
- Cost Threshold for Parallelism :查询优化器在优化查询计划时会经历多个阶段,此设置允许优化器在串行计划成本不够高时退出查询优化过程,
超级会员免费看
订阅专栏 解锁全文
1013

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



