在一切開始之前,先看下微軟的建議:在系統的整體性能優化裡面, TSQL優化優先順序並不是最高的。 本文包括四部分: SET STATISTICS TIME ON SET STATISTICS IO SET SHOWPLAN_ALL ON SET STATISTICS PROFILE ON SET 函數 ...
在一切開始之前,先看下微軟的建議:在系統的整體性能優化裡面, TSQL優化優先順序並不是最高的。
本文包括四部分:
- SET STATISTICS TIME ON
- SET STATISTICS IO
- SET SHOWPLAN_ALL ON
- SET STATISTICS PROFILE ON
SET 函數主要是為了顯示sql執行時的查詢計劃,CPU、硬碟使用情況。
1. SET STATISTICS TIME ON:當 SET STATISTICS TIME 為 ON 時,會顯示語句的時間統計信息。為 OFF 時,不顯示時間統計信息。
10000 * from Measure_heat select top 10000 * from Measure_heat order by id desc顯示結果:
2. SET STATISTICS IO:生成的磁碟活動量的信息。
10000 * from Measure_heat select top 10000 * from Measure_heat order by id desc顯示結果:
對於邏輯讀取、物理讀取,lob讀取等概念,微軟的解釋是:
對於lob的概念,我在網上找了很久沒有找到,最後在msdn官方的Libiary里發現,再一次證明查資料還得去官方網站啊。
3. SET SHOWPLAN_ALL ON。 如果要顯示語句在查詢時執行計劃等,可以使用該語句顯示。執行計劃是我們進行索引優化的有力依據。
10000 * from Measure_heat顯示結果:
上圖的結果比較難看明白,我們可以用圖形可視化的方式來查看,顯示更直觀一些。
4. 還有一些與性能分析有關的SET函數,如
SET STATISTICS XML --XML格式輸出查詢計劃
SET STATISTICS PROFILE ON --執行的各個查詢都返回其常規結果集
比如profile 設為on時,結果同SET SHOWPLAN_ALL ON的結果很像,多了rows和Executes兩列,分別指個運算符生成的實際行數和運算符執行的次數: