最近遇到資料庫主Table有快兩百萬筆資料,然後join的資料表也是百萬級,我使用EF6來做資料查詢,結果一個查詢要5~8秒,實在是不符合需求阿!!
所以最好的改善方式就是加索引,先來看下面的圖
使用熱鍵ctrl + l 叫出執行計畫,SQLServer2014 很貼心會幫我們分析一句sql,我們可以看出哪邊的會花較多的成本,並建議我們加入索引(圖上綠色部分),真的很貼心。
依照建議加入索引後,再執行一次如下圖
有沒有發現,他的查詢成本變0%,同理我們在把大部分需要查詢的欄位以及常join的FK加入索引,就能很明顯的改善的查詢效能囉。
現在我的查詢速度又回到500ms以下,真是太令人開心了。
整理一下重點 :
- 常用join table, 記得幫FK加入index
- 常搜尋的欄位也記得加入index
- 注意索引是需要維護的,如果常常會CUD,要記得定期維護!
沒有留言:
張貼留言