[SQL SERVER][Memo]善用用戶端統計資料
簡介
當我們要判斷查詢陳述式、Store Procedure..等效能好壞時,
透過執行計畫比較查看是比較常用的方式,
但同時也可以蒐集用戶端統計資料取得更詳細資訊,
因為用戶端統計資料可以很輕易知道Server返回Client的資料量、總執行時間..等。
因為單單只透過成本來判斷效能好壞可能會被誤導,
假設有個序列執行計畫成本很低,但是返回Client的資料量卻很大,
而真正造成查詢低落的問題其實是資料量的大小,
這時你可以透過用戶端統計資料輕鬆取得相關詳細資料,進而改善查詢效能。
使用方式
勾選包括用戶端統計資料
或 查詢>包括用戶端統計資料
重設用戶端統計資料(查詢>重設用戶端統計資料)
四大區塊
1. 用戶端執行時間:沒什麼需注意。
2. 查詢設定檔統計資料:陳述式傳回的資料列需注意(依需求)。
3. 網路統計資料:伺服器往返的數目需注意(盡量減少往返數目)。
4. 時間統計資料:總執行和用戶端處理時間需注意(用戶端電腦等級太差多少也會拖慢SQL Server)。
執行第二次查詢
用戶端統計資料最多紀錄10次試驗,第11次會覆蓋最早的第1次,其他依此類推。
網路統計資料:可以看到用戶端送出的位元組比上一次還高(紅色箭頭一般表示較差),
因為我第二次的陳述式確實較第一次多。
時間統計資料:第二次總執行時間較第一次下降很多(綠色箭頭一般表示較優),
這是因為第二次的查詢都直接撈記憶體(快取 data page)所以實體讀取數很低(
SQL Server在第一次查詢時將結果集相關 data page 存放在Buffer pool所造成)。
執行第三次查詢
儲存結果
複製全選後貼到Excel或 CSV簡單實用的功能。
參考