【问题标题】:Query cost in SQL Server Management StudioSQL Server Management Studio 中的查询成本
【发布时间】:2010-09-09 21:28:40
【问题描述】:

当您选择包含实际执行计划时,SSMS 如何计算显示的查询成本(相对于批次)值?

主要是,我有一些保存的执行计划 XML 文件,我想相互比较。它必须以某种方式从 XML 文件中的数据计算该数字,但我没有看到这是如何完成的。如果我打开其中包含多个查询的 .sqlplan 文件之一,它将正确显示与批处理值相关的那些。我只想自己做。

仅供参考: 要获取此 XML,请在 Execution Plan 选项卡上,右键单击并选择“Show Execution Plan XML...”

【问题讨论】:

    标签: sql sql-server-2008 ssms


    【解决方案1】:

    说来话长,简单来说,成本是数据库执行的物理和逻辑读取量(以字节为单位)和 CPU 成本。对于每个操作,如果读取是从硬盘读取的,则必须检索数据,我们有物理读取,在其他情况下,数据库从缓存中读取。这是估计的运营商成本。对于每个步骤,您都有它的成本和子树的成本(如果有)。然后按整个执行计划的百分比计算成本金额并显示,这是估计子树成本( 查询优化器在同一子树中执行此操作及其之前的所有操作的总成本。)

    For more

    【讨论】:

      【解决方案2】:

      每个/ShowPlanXML/BatchSequence/Batch/Statements/StmtSimple 都有一个名为StatementSubTreeCost 的属性。

      它们在它们的批次中相加并计算它们的份额。

      您可以在XML 文件中手动更改它们,使用SQLPLAN 扩展名保存它并使用SSMS 打开它。您会看到相关成本将被重新计算。

      【讨论】:

      • 这是完美的,谢谢!我以为是这样的,但我第一次尝试做那个数学时,它没有出来。现在我可以尝试我的 XPath 技能并比较两个文件。
      猜你喜欢
      • 2013-11-29
      • 1970-01-01
      • 2014-02-18
      • 2012-03-14
      • 2014-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多