当以秒为单位指定并行度阈值(在特定硬件上,见下文)但估计的 CPU 成本应该是无单位时,优化器如何决定是否使用并行度?估计是按秒处理还是根据某些硬件指标在内部发生转换?
来自 MS: 并行选项的成本阈值
成本是指在特定硬件配置上运行串行计划所需的估计耗用时间(以秒为单位)
sql-server-execution-plan-estimated-io-cost-estimated-cpu-cost-no-unit
当以秒为单位指定并行度阈值(在特定硬件上,见下文)但估计的 CPU 成本应该是无单位时,优化器如何决定是否使用并行度?估计是按秒处理还是根据某些硬件指标在内部发生转换?
来自 MS: 并行选项的成本阈值
成本是指在特定硬件配置上运行串行计划所需的估计耗用时间(以秒为单位)
sql-server-execution-plan-estimated-io-cost-estimated-cpu-cost-no-unit
并行度阈值基于估计的计划成本。如果估计的计划成本超过并行度阈值,优化器也会考虑并行计划选项。不涉及其他测量。
在优化器开始时,计划成本是根据特定计算机上的实际测量得出的。从那时起,在许多版本中,优化器发生了很多变化,因此将任何时间单位附加到当前的“估计成本”不再合适。例如,在较新版本的 SQL Server 中,不仅估计的执行时间会影响估计的成本。它唯一告诉您的是,优化器假定对于在相同情况下执行的相同查询具有更高估计成本的查询计划将需要更多资源。
您甚至无法比较两个不同查询的估计成本。很容易提出两个查询,其中一个的估计成本高十倍,但另一个的执行时间实际上要长得多。因此,您永远不应该使用查询计划的估计成本来进行性能调优。
您问题中的引述是早期遗留下来的,当时它仍然有意义。当时在解释估计查询成本的部分中也提到了它。