該實務情況為公司產線單位有調整,為維持 AP 端運作資料上有進行大量更新,以往產線是依靠 [工單檔頭 Table] 的 [未完工 Index] 先跑篩選資料再進行後續,但資料大量更新後統計資訊不準確且剛好 pass 掉下述三種統計資訊維護情況
- 資料大量更新後沒有手動更新
- 未達到自動更新門檻
- 每月排程更新時程也還沒到
所以最近就常出現 blocking 和 deadlock 情況
統計資訊不準確執行計畫
可以看出從 [檔身 Table] 抓出 81,327 筆資料,然後跑 Nested Loop 進 [檔頭 Table] 內,最後只抓出 414 筆資料而且 [Index Seek Operator] 內的 Actual Row (81,327) 和 Estimated Row (1) 差異過大
統計資訊更新後執行計畫
從 [檔頭 Table] 開始跑,只抓出 494 筆資料出來運作而已
Logical Read 比較
懶得去計算改善多少倍了,XD
Table | 統計資訊不精確 | 更新統計資訊後 |
---|---|---|
檔頭 | 243,819 | 9 |
檔身 | 326,184 | 2,551 |
沒有留言:
張貼留言