在此查询计划中:
https://www.brentozar.com/pastetheplan/?id=HydtQjsO5
...多个节点的成本为 100%。这是怎么发生的?当如此多的节点具有一定是错误的成本时,您如何确定从哪里开始优化?是否有其他东西可以代替成本百分比?
在此查询计划中:
https://www.brentozar.com/pastetheplan/?id=HydtQjsO5
...多个节点的成本为 100%。这是怎么发生的?当如此多的节点具有一定是错误的成本时,您如何确定从哪里开始优化?是否有其他东西可以代替成本百分比?
成本是基于估计的,当这些估计出错时,您通常会制定一个缓慢的计划——因此将您的调整目标基于它们并不是一个好主意。
使用实际经过的时间。当您在 SSMS 中使用包含实际执行计划按钮时,系统会为您收集这些信息。您可能需要查看 XML 输出以查看时间,具体取决于您的 SSMS 版本。
微软在响应错误报告时对此进行了解释:
优化器使用估计成本在其成本模型的上下文中在不同的计划运算符之间进行选择。您的系统不太可能具有与模型相同的物理性能特征。
根据您的目标,在查询调优中有许多不同的重要指标。在形成完整意见时,您可以选择考虑部分或全部物理读取、内存消耗、CPU 使用和经过的时间。在大多数情况下,我个人的主要指标是 CPU 时间。