[SQL SERVER][Memo]善用用戶端統計資料

[SQL SERVER][Memo]善用用戶端統計資料

簡介

當我們要判斷查詢陳述式、Store Procedure..等效能好壞時,

透過執行計畫比較查看是比較常用的方式,

但同時也可以蒐集用戶端統計資料取得更詳細資訊,

因為用戶端統計資料可以很輕易知道Server返回Client的資料量、總執行時間..等。

因為單單只透過成本來判斷效能好壞可能會被誤導,

假設有個序列執行計畫成本很低,但是返回Client的資料量卻很大,

而真正造成查詢低落的問題其實是資料量的大小,

這時你可以透過用戶端統計資料輕鬆取得相關詳細資料,進而改善查詢效能。

 

使用方式

勾選包括用戶端統計資料

clip_image002

 

或 查詢>包括用戶端統計資料

clip_image004

 

重設用戶端統計資料(查詢>重設用戶端統計資料)

clip_image006

 

四大區塊

1. 用戶端執行時間:沒什麼需注意。

2. 查詢設定檔統計資料:陳述式傳回的資料列需注意(依需求)。

3. 網路統計資料:伺服器往返的數目需注意(盡量減少往返數目)。

4. 時間統計資料:總執行和用戶端處理時間需注意(用戶端電腦等級太差多少也會拖慢SQL Server)。

clip_image008

 

執行第二次查詢

用戶端統計資料最多紀錄10次試驗,第11次會覆蓋最早的第1次,其他依此類推。

clip_image010

clip_image012

網路統計資料:可以看到用戶端送出的位元組比上一次還高(紅色箭頭一般表示較差),

因為我第二次的陳述式確實較第一次多。

時間統計資料:第二次總執行時間較第一次下降很多(綠色箭頭一般表示較優),

這是因為第二次的查詢都直接撈記憶體(快取 data page)所以實體讀取數很低(

SQL Server在第一次查詢時將結果集相關 data page 存放在Buffer pool所造成)。

 

執行第三次查詢

clip_image014

clip_image016

 

儲存結果

複製全選後貼到Excel或 CSV簡單實用的功能。

clip_image018

clip_image020

 

參考

分析指令碼的效能