为什么忽略并行性的成本阈值?

Rob*_*rto 5 sql-server parallelism sql-server-2012

SQL Server 2012 SP2 企业版。用户抱怨速度慢。监控工具显示最高等待事件是CXPACKET

实例设置

  • 最大深度:8
  • 并行的成本阈值:175

Ran sp_BlitzCache(来自 Brent Ozar 工具集,这些人摇滚)进行进一步诊断,结果显示成本低于 175 的查询并行。

有人见过并行性的成本阈值被忽略吗?

Pau*_*ite 8

有人见过并行性的成本阈值被忽略吗?

它没有被忽视。在编译过程中,优化器首先考虑串行计划。如果该计划的估计成本超过阈值,优化器将继续寻找并行计划。如果生成的并行计划的成本低于最佳串行计划,则将选择它。

因此,并行计划的成本将低于串行计划(您看不到)。最终并行计划的估计成本完全有可能低于阈值 - 关键是最佳串行计划候选者超过了阈值

一个例子可以在我关于并行计划位图的博客文章中看到。