2010-09-09 119 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

相關問題