2016年3月15日 星期二

[SQL] 遇到百萬筆資料搜尋太慢怎麼辦? 加入索引(Index)

 

最近遇到資料庫主Table有快兩百萬筆資料,然後join的資料表也是百萬級,我使用EF6來做資料查詢,結果一個查詢要5~8秒,實在是不符合需求阿!!

所以最好的改善方式就是加索引,先來看下面的圖

2016-03-15_114910

使用熱鍵ctrl + l 叫出執行計畫,SQLServer2014 很貼心會幫我們分析一句sql,我們可以看出哪邊的會花較多的成本,並建議我們加入索引(圖上綠色部分),真的很貼心。

 

依照建議加入索引後,再執行一次如下圖

2016-03-15_114933

有沒有發現,他的查詢成本變0%,同理我們在把大部分需要查詢的欄位以及常join的FK加入索引,就能很明顯的改善的查詢效能囉。

 

現在我的查詢速度又回到500ms以下,真是太令人開心了。

 

整理一下重點 :

  • 常用join table, 記得幫FK加入index
  • 常搜尋的欄位也記得加入index
  • 注意索引是需要維護的,如果常常會CUD,要記得定期維護!

沒有留言:

張貼留言