SQL Server索引進階第九篇:解讀執行計劃

其實說到執行計劃,相信已經不是什麼神祕的東西了,可以說已經逐漸的成爲了理解優化的基礎知識。在本系列之前的很多的文章中,提到也是用過執行計劃。所謂的執行計劃,說的通俗一點就是查詢語句的執行算法。通過查看執行計劃,可以讓我們看到很多的優化引擎的內部的信息,本篇的文章不可能對執行計劃進行很詳盡而全面的講解,但是,朋友們可以把這個作爲學習執行計劃的一個入口,在以前,我們團隊會給出更多的主題的文章和視頻。


另外有關推薦大家去看我們站點的另外一個系列:查詢優化器內核分析,可以進一步的加上大家對SQL Server內部的一些理解。


那麼,簡而言之,執行計劃可以分爲三種格式的:圖形的,XML格式的,純文本格式的。對於執行計劃,又可以分爲兩類:估算的執行計劃和實際的執行計劃。意思非常好理解,這裏不贅述。


下面我們就來快速的看看。

圖形化的執行計劃

正如之前所說的,執行計劃一組就是告訴SQL Server如何去執行一個查詢語句的指令。

我們就通過一個簡單查詢來看看它的實際的執行計劃:

  1. SELECT LastName, FirstName, MiddleName, Title
  2. FROM Person.Contact
  3. WHERE Suffix = 'Jr.'
  4. ORDER BY Title
複製代碼


最直接的查看方式就是點擊如下的圖標(查看的實際的執行計劃):



執行計劃如下:


XML格式的執行計劃

在執行的語句之前加上:SET SHOWPLAN_XML ON

在語句之後加上:SET SHOWPLAN_XML OFF,示例代碼如下:

  1. SET SHOWPLAN_XML ON;
  2. GO

  3. SELECT LastName, FirstName, MiddleName, Title
  4. FROM Person.Contact
  5. WHERE Suffix = 'Jr.'
  6. ORDER BY Title;

  7. SET SHOWPLAN_XML OFF;
  8. GO
複製代碼

結果如下:


文本格式的執行計劃

執行如下的語句:

  1. SET SHOWPLAN_text ON ;
  2. GO

  3. SELECT LastName, FirstName, MiddleName, Title
  4. FROM Person.Contact
  5. WHERE Suffix = 'Jr.'
  6. ORDER BY Title;
  7. go

  8. SET SHOWPLAN_text off ;
  9. GO
複製代碼


上面的SET SHOWPLAN_text ON顯示的是估算的執行計劃,如果要看實際的執行計劃,就需要採用SET STATISTICS PROFILE ON ;SET STATISTICS PROFILE OFF。我們這裏篇幅有限,不再細說。


解讀執行計劃


執行計劃的得到非常的容易,如果真的要理解,那就得要花很大的功夫了。最起碼的就是要把其中涉及到的很多的一些圖形代表的意思需要搞清楚,這不是一朝一夕的事情。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章