SQL Server之捕獲Showplan XML數據

在數據庫調優過程中,分析執行計劃前對執行計劃進行優化是很重要的內容,在SQL Server中通常有兩種方式可以捕獲執行計劃的相關信息:SQL Server Management Studio和SQL Server Profiler的Showplan XML事件類。

1) SQL Server Management Studio

提供顯示實際執行計劃和顯示估計執行計劃等功能,這將用圖形方式來呈現計劃,這些功能為直接檢查提供了最適合的解決方案,是目前最常用的顯示和分析執行計劃的方法。

使用SQL Server Management Studio連接數據庫服務器,新建一個查詢號窗口,選中查詢語句單擊右鍵,在彈出菜單中選擇“顯示估計的執行計劃”選項,如圖所示。

SQL Server之捕獲Showplan XML數據

之後會生成一個圖形計劃,如圖所示。

SQL Server之捕獲Showplan XML數據

圖形查詢計劃閱讀的方法是由右至左,通常由底部向上,最左邊、最上方的步驟是計劃中的最後步驟,閱讀圖形計劃需要注意以下幾個方面的內容:

Ø 計劃中的每個步驟由圖標表示,不同的圖標表示不同的含義;

Ø 計劃中每個步驟都有一個開銷百分比,表示該步驟佔整個查詢計劃成本的百分比;

Ø 查詢計劃會在查詢框中為每條語句顯示一個執行計劃,這些計劃會在結果框中順序列出,每個計劃均有相對於批處理的成本,這個成本是通過百分比表示;

Ø 步驟之間通過箭頭連接,顯示查詢執行時採用的順序以及操作之間的數據流;

Ø 將光標懸停在任意步驟之上時,會彈出一個信息框,顯示指定步驟的詳細信息和影響到的記錄條數;

Ø 步驟間的連接箭頭有著不同的厚度,其厚度表示每個步驟之間移動數據行的數量、大小等相對成本,厚度越大表示相對成本越高,通過這個指示器可以快速的衡量查詢計劃的成本,如果返回過多的數據行,那麼說明當前的查詢計劃可能不是最優的;

2) SQL Server Profiler中的Showplan XML事件類

當Microsoft SQL Server執行SQL語句時,會發生Showplan XML事件類,包括Showplan XML事件類以標識Showplan運算符,此事件類將每個事件存儲為定義完善的XML文檔。

注意:使用SQL Server Profiler中的Showplan XML事件類可以查看查詢執行計劃,當跟蹤中包含Showplan XML事件類時,其開銷將明顯影響性能,查詢優化後,Showplan XML將存儲查詢計劃,若要將引起的開銷降到最低,請將限制該事件類,僅在監視主要時段內的特定問題的跟蹤中使用它。

在配置Profiler跟蹤時,使用新的事件類Showplan XML,它包含以下事件的設置:

Ø Showplan XML:XML Showplan輸出可作為一個單獨的文件進行保存,如圖所示;

Ø Stored Procedures-RPC:Completed:指示一個遠程過程調用已經完成;

Ø TSQL-SQL:BatchCompleted:指示Transact-SQL批作業已經完成;

SQL Server之捕獲Showplan XML數據

在提取事件設置對話框中有提取XML計劃和死鎖XML兩種,保存文件的後綴名為.sqlplan,而關於生成的提取文件又有兩種設置:

Ø 單個文件中的所有XML顯示計劃批(P):表示所有的查詢執行計劃結果只保存在一個文件中;

Ø 不同文件中的每個XML顯示計劃批(E):表示不同的查詢執行計劃使用不同的文件來保存;

Profiler跟蹤設置完成後,執行一個跟蹤,Profiler捕獲到的查詢計劃結果如圖所示。

SQL Server之捕獲Showplan XML數據


分享到:


相關文章: