您好,登錄后才能下訂單哦!
Estimated vs. actual query plans
我們可以讓SQL server輸出計劃(對于任何顯示計劃選項-圖形、文本或 XML)是否包含實際運行查詢。
在不執行查詢的情況下生成的查詢計劃稱為 "預估執行計劃 ", 因為 SQL server 可能選擇重新編譯查詢 (由于各種原因可能會發生重編譯), 并且可能在執行時生成不同的查詢計劃。
預估執行計劃對于各種用途很有幫助的, 例如查看長時間運行的查詢的查詢計劃而不等待它完成;在不改變數據庫狀態或獲取任何鎖的情況下查看插入、更新或刪除語句的查詢計劃;或者在不實際運行查詢的情況下, 探索各種優化提示對查詢計劃的影響。
預估執行計劃包括基數、行大小、成本估計數,2012版本新增功能--估計執行模式, 本章后面將對此進行介紹。
提示:優化程序報告的預估成本旨在作為一個指南, 用于比較單個查詢計劃或兩個不同計劃的相對成本中的不同運算符的預期相對成本。這些單位預估并不意味著任何絕對意義上的解釋, 如毫秒或秒。
執行查詢后生成的查詢計劃稱為實際執行計劃。實際執行計劃包含的信息與估計的執行計劃加上實際的行計數和每個運算符的實際處決次數相同。比較估計值和實際行數可以幫助我們識別基數估計錯誤, 這可能會導致其他計劃問題。
提示:實際執行計劃包含與預估執行計劃相同的成本估計。盡管 SQL server 在生成實際執行計劃時實際執行查詢計劃, 但這些成本估計仍然與優化程序生成的估計值相同, 并且不反映實際的執行成本。
在從 SQL server 管理工作室或 SQLCMD 命令行實用程序運行即席查詢時,可以使用幾個 transact-sql 命令來收集顯示計劃選項輸出。通過這些命令, 可以收集文本和 XML 計劃, 以及預估和實際計劃。
表10-1 列出了啟用顯示計劃選項的所有可用 set 命令。
我們還可以使用擴展事件和 XML 計劃使用動態管理視圖 (DMVs) 來收集查詢計劃信息。在分析無法訪問源代碼的應用程序時, 這些選項特別有用。
12章討論了包含計劃信息的 DMVs。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。