2021年7月7日 星期三

難忘的經驗:建立INDEX後,讓SELECT效能變慢

1.情況說明:

朋友急call,告知我他的系統變得超慢,看了一下IO高的SQL,有大量的IO發生,查看一下執行計畫發現大量使用WorkTable(TempTable)讓效能低落。

2.溝通詢問:

Q1 詢問朋友有沒有修改程式碼?

A1 朋友說沒有


Q2 最近table schema有沒有異動

A2 朋友說沒有


Q3 table schema是除了異動欄位外,包含contact,Index都算

A3 朋友:有,Index我加了Index

3.如何解決:

記得之前看過一篇文章 ,文中有提到建立Index後影響其他語法查詢效能,再次確認這個Index是查詢報表用砍掉對業務沒有影響,就大膽的砍掉該Index,問題就瞬間解決了。


4.問題重現:

  • 查詢語法


  •  先建立IX_FIRST索引語法
  • 執行查詢語法(IO為608)
  • 建立IX_SECOND索引語法
  • 再次執行查詢語法(IO為368495)
  • 刪除IX_SECOND後IO又恢復為608(整體IO差了大概606倍)








沒有留言:

張貼留言