您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“SQL Server的執行計劃是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“SQL Server的執行計劃是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
為了能夠執行查詢,SQL Server 數據庫引擎必須分析該語句,以確定訪問所需數據的最有效方法。此分析由稱為查詢優化器的組件處理。查詢優化器的輸入由查詢、數據庫架構(表和索引定義)和數據庫統計信息組成。查詢優化器的輸出是查詢執行計劃,有時稱為查詢計劃或執行計劃。
查詢執行計劃是以下內容的定義:
訪問源表的順序。通常,數據庫服務器可以在許多序列中訪問基表以生成結果集。
用于從每個表中提取數據的方法。通常,訪問每個表中的數據有不同的方法。如果只需要具有特定鍵值的幾行,則數據庫服務器可以使用索引。如果表中的所有行都是必需的,數據庫服務器可以忽略索引并執行表掃描。如果表中的所有行都是必需的,但有一個索引的鍵列位于 中,則執行索引掃描而不是表掃描可能會保存單獨的結果集。如果表非常小,則表掃描可能是幾乎所有訪問表的最有效方法。
用于計算計算的方法,以及如何篩選、聚合和排序每個表中的數據。從表中訪問數據時,有不同的方法可以對數據執行計算(例如計算標量值),以及聚合和排序查詢文本中定義的數據,以及如何篩選數據。
執行計劃以圖形方式顯示 SQL Server 查詢優化器選擇的數據檢索方法。執行計劃使用圖標而不是 SET SHOWPLAN_ALL或 SET SHOWPLAN_TEXT 語句生成的表格表示形式來表示 SQL Server 中特定語句和查詢的執行開銷。這種圖形方法對于了解查詢的性能特征非常有用。
雖然 SQL Server 查詢優化器只生成一個執行計劃,但存在估計執行計劃和實際執行計劃的概念。
估計的執行計劃返回查詢優化器在編譯時生成的執行計劃。生成估計的執行計劃不會實際執行查詢或批處理,因此不包含任何運行時信息,例如實際資源使用情況指標或運行時警告。
實際執行計劃返回查詢優化器生成的執行計劃,并在查詢或批處理完成后返回執行計劃。這包括有關資源使用情況指標和任何運行時警告的運行時信息。
生成估計的執行計劃時,不會執行 T-SQL 查詢或批處理。因此,估計的執行計劃不包含任何運行時信息,例如實際資源使用情況指標或運行時警告。相反,生成的執行計劃顯示 SQL Server 數據庫引擎在實際執行查詢時最有可能使用的查詢執行計劃,并顯示流經計劃中多個運算符的估計行。
若要使用此功能,用戶必須具有執行要為其生成圖形執行計劃的 T-SQL 查詢的適當權限,并且必須向他們授予查詢引用的所有數據庫的 SHOWPLAN 權限。
通過 SSMS、EXPLAIN 和 SET SHOWPLAN_XML的估計執行計劃可用于 Azure Synapse Analytics 中的專用 SQL 池(以前稱為 SQL DW)和專用 SQL 池。
注意:使用 SET SHOWPLAN_XML返回每個語句的執行計劃信息而不執行它。
實際執行計劃是在執行 T-SQL 查詢或批處理后生成的。因此,實際執行計劃包含運行時信息,例如實際資源使用指標和運行時警告(如果有)。生成的執行計劃顯示 SQL Server 數據庫引擎用于執行查詢的實際查詢執行計劃。
若要使用此功能,用戶必須具有執行正在為其生成圖形執行計劃的 Transact-SQL 查詢的適當權限,并且必須向他們授予查詢引用的所有數據庫的 SHOWPLAN 權限。
要執行計劃功能或使用 XML 顯示計劃 SET 選項,用戶必須具有執行要為其生成執行計劃的 Transact-SQL 查詢的適當權限,并且必須向他們授予查詢引用的所有數據庫的 SHOWPLAN 權限。
使用以下語句打開SHOWPLAN_XML:
SET SHOWPLAN_XML ON; GO
若要打開統計信息 XML,請使用以下語句:
SET STATISTICS XML ON; GO
執行查詢:
USE AdventureWorks2012; GO SET SHOWPLAN_XML ON; GO -- Execute a query. SELECT BusinessEntityID FROM HumanResources.Employee WHERE NationalIDNumber = '509647174'; GO SET SHOWPLAN_XML OFF;
執行計劃以圖形方式顯示 SQL Server 查詢優化器選擇的數據檢索方法。執行計劃使用圖標而不是 SET SHOWPLAN_ALL或 SET SHOWPLAN_TEXT 語句生成的表格表示形式來表示 SQL Server 中特定語句和查詢的執行開銷。這種圖形方法對于理解查詢的性能特征非常有用。
SQL Server Management Studio 包含的功能允許用戶比較兩個執行計劃(例如,同一查詢的感知好計劃和壞計劃),并執行根本原因分析。還包括執行單個查詢計劃分析的功能,允許通過分析查詢的執行計劃來深入了解可能影響查詢性能的方案。
出于故障排除原因,數據庫專業人員可能必須執行比較計劃的功能:
查找查詢或批處理突然變慢的原因。
了解查詢重寫的影響。
觀察引入架構設計的特定性能增強更改(如新索引)如何有效地更改執行計劃。
可以在以下兩者之間進行比較:
兩個以前保存的執行計劃文件(擴展名為 .sqlplan)。
一個活動的執行計劃和一個以前保存的查詢執行計劃。
查詢存儲中的兩個選定查詢計劃。
比較兩個執行計劃時,計劃中執行基本相同的區域將以相同的顏色和圖案突出顯示。單擊一個計劃中的顏色區域會將另一個計劃居中放在該計劃中的匹配節點上。仍然可以比較執行計劃的不匹配運算符和節點,但在這種情況下,必須手動選擇要比較的運算符。
查詢性能故障排除需要在了解查詢處理和執行計劃方面具有豐富的專業知識,以便能夠實際查找和修復根本原因。
SQL Server Management Studio 包括在實際執行計劃分析任務中實現某種程度自動化的功能,尤其是對于大型和復雜的計劃。目標是更輕松地查找基數估計不準確的方案,并獲取有關可能可用的緩解措施的建議。
讀到這里,這篇“SQL Server的執行計劃是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。