Sql-Server
如何知道何時/如果我有太多索引?
時不時地執行 Microsoft SQL Server Profiler,它建議我創建一堆新的索引和統計資訊(“…97% 估計改進…”)。
據我了解,每個添加的索引都可以使 SQL
SELECT
查詢更快,但也可以使UPDATE
orINSERT
查詢變慢,因為必須調整索引。我想知道的是,我什麼時候有“太多”的索引/統計資訊?
也許對此沒有明確的答案,但有一些經驗法則。
您的負載配置文件是回答這個問題的最重要因素。
- 如果您的負載是讀取密集型的,您希望索引能夠滿足最繁重或最頻繁的查詢。
- 如果您的負載是寫密集型的,請仔細索引。例如,滿足查找 UPDATE 需求的索引以及您的一兩個最昂貴的 SELECT。
- 如果您的負載是 OLAP 負載,請謹慎使用索引,因為無論如何您都將掃描目標表。
你怎麼知道你有太多的索引?