SQL Server性能優化(1)使用SET函數

在一切開始以前,先看下微軟的建議:在系統的總體性能優化裏面, TSQL優化優先級並非最高的。sql

image

本文包括四部分:性能優化

  • 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 時,不顯示時間統計信息。性能

SET STATISTICS TIME ON
select top 10000 * from Measure_heat
select top 10000 * from Measure_heat order by id desc

顯示結果:優化

image

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

image

對於邏輯讀取、物理讀取,lob讀取等概念,微軟的解釋是:code

image

對於lob的概念,我在網上找了好久沒有找到,最後在msdn官方的Libiary裏發現,再一次證實查資料還得去官方網站啊。blog

3. SET SHOWPLAN_ALL ON。 若是要顯示語句在查詢時執行計劃等,能夠使用該語句顯示。執行計劃是咱們進行索引優化的有力依據。索引

SET SHOWPLAN_ALL On
select top 10000 * from Measure_heat

顯示結果:

image

上圖的結果比較難看明白,咱們能夠用圖形可視化的方式來查看,顯示更直觀一些。

image

4. 還有一些與性能分析有關的SET函數,如

SET STATISTICS XML  --XML格式輸出查詢計劃
SET STATISTICS PROFILE  ON --執行的各個查詢都返回其常規結果集

好比profile 設爲on時,結果同SET SHOWPLAN_ALL ON的結果很像,多了rows和Executes兩列,分別指個運算符生成的實際行數和運算符執行的次數:

image

相關文章
相關標籤/搜索