2010-09-09 122 views
4

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

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

FYI: 为了得到这个XML,执行计划选项卡上,单击右键,选择“显示执行计划XML ......”

回答

3

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

他们在他们的批次和他们的份额计算。

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

+0

这是完美的,谢谢!我认为这是这样的,但是我第一次尝试做这个数学,它没有出来。现在我可以试用我的XPath技能并在两个文件之间进行比较。 – Bryan 2010-09-10 13:23:47

3

这是一个很长的故事,简而言之,成本是数据库以字节为单位执行的物理和逻辑读取的数量,以及CPU的成本。对于每个操作,如果读取来自硬盘,则必须检索数据,而我们有物理读取,否则数据库从缓存中读取数据。这是预计运营成本。对于每一步你都有它的成本和子树的成本(如果有的话)。成本金额,然后在百分比为整个执行计划计算和呈现,这是估计子树成本( 总费用的查询优化器,用于执行此操作,并在相同的子树中它前面的所有操作。)

For more

相关问题