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