SQL效能優化前期準備-清除快取、開啟IO統計

發表於2016-08-21

如果需要進行SQl Server下的SQL效能優化,需要準備以下內容:

一、SQL查詢分析器設定:

1、開啟實際執行計劃跟蹤。

2、每次執行需優化SQL前,帶上清除快取的設定SQL。

平常在進行SQL Server效能優化時,為了確保真實還原效能問題,我們需要關閉SQL Server自身的執行計劃及快取。可以通過以下設定清除快取。

3、開啟查詢IO讀取統計、查詢時間統計。

開啟設定後,執行SQL效果如下:

針對其中的每個圖示節點,滑鼠滑上去的時候,可以看到具體的執行資訊。如下圖:

可以通過檢視謂詞、物件、輸出列表,分析問題點或者建立優化索引等。

當然你也可以換一種檢視方式,點選右鍵選擇顯示執行計劃XML。

還有一點特別說明的是:當你SQL很長邏輯關係很複雜的時候,執行計劃會是一個很大的網狀關係圖,你會發現在右下角有一個加號的按鈕,點選後一個縮圖。通過縮圖你可以很方便的定位執行節點,用起來還比較好用。

二、針對SQL Server Profile,SQL查詢跟蹤器進行分析。

1、開啟方式:SQL Server查詢分析器->工具,SQL Profile。開啟方式截圖:

2、連線&特殊設定:

開啟後介面如下圖:

設定正確連線資訊後,點選連線,彈出如下介面。按照圖中操作步驟進行設定。

其中DatabaseId、HostName可以在查詢分析器中進行查詢,指令碼如下:

實際上HostName就是你的本機計算機名。

最終設定完之後點選執行。正常跟蹤的效果如圖:

重點關注其中的Duration、Writes、Reads、CPU,分析物件是TextData,及執行的語句。其中Duration為毫秒數,1000即為1秒。

——————————————————————————————————————————

應用總結&建議

上面應用配合方式是:

1、先通過SQL查詢跟蹤器,跟蹤出你所以執行的SQL,然後定位其中Duration比較的SQL 或者超過效能標準的SQl(比如頁面訪問3s、5s、8s)、報表30s等。

2、將問題SQL在查詢分析器中進行分析,主要通過執行計劃及IO統計定位耗時佔比高及IO讀取大的地方,然後逐步的調整SQL邏輯關係(比如新增業務條件過濾縮小集合,建立索引、調整like匹配等),優化後再重新進行跟蹤看看是否有效果,最終達到SQL的優化目的。

寫到這裡,基本上我常用的SQL效能優化的方式就已經講完了,希望給大家能提供幫助。

相關文章