得到執行計劃的方式有兩種:
1、一種是在指令的前面打開一些開關,讓執行計劃信息打在結果集裡,這種方法比較適合在一個測試環境裡對單個語句調優。
這些開關最常用的有
復制代碼 代碼如下:
SET SHOWPLAN_ALL ON
SET SHOWPLAN_ALL ON --(是不是reuse了一個執行計劃,SQSERVERL有沒有覺得缺少索引),只能在XML的輸出裡看到
SET STATISTICS PROFILE ON
還有如果使用SSMS的話,可以用快捷鍵:Ctrl+L 小寫L 他會執行你的語句並顯示執行計劃,但是不會返回結果集
2、另一種方法是使用SQL Trace裡的事件跟蹤來跟蹤語句的執行計劃。
常用的事件有 :SHOWPLAN ALL、SHOWPLAN STATISTICS PROFILE、SHOWPLAN XML STATISTICS PROFILE
這種方法的好處是無須打開任何開關,可以用來直接跟蹤應用程序的語句執行。
缺點是他會把所有語句都抓下來。如果SQLSERVER比較忙的話,輸出會很大,有可能影響性能,所以要慎用
--------------------------------------------------------------------------------
這兩種方法收集的信息大部分是一樣的。XML的方式會將結果以XML的結構返回,在SQL Trace裡,這種結果可以用圖形的方式顯示執行計劃以及其相關的信息。
對執行計劃比較簡單的語句,這樣的輸出方式可能比較友善。但是對於復雜的執行計劃,如果用圖形的方式顯示,一個屏幕很難全放得下, 每一步的統計信息要鼠標點到才會顯示出來,個人覺得不如文本輸出格式易讀性好。