Sql-Server
未使用的 NONCLUSTERED INDEX 還能提高查詢速度嗎?
這是一個奇怪的情況,但我希望有人能給出答案。
在一些性能故障排除期間,我們按照
sp_BlitzIndex
. 第二天我們檢查了它的使用情況,它顯示了0 次讀取(0 次掃描/搜尋,0 次單例查找),所以我們禁用了它。就在下一分鐘,我們收到了關於我們在添加 INDEX 時首先嘗試檢查和解決的相同應用程序緩慢(性能問題)的投訴。
現在,我從理論上知道,這聽起來純屬巧合。該指數是可證明的、可衡量的、未使用的。禁用它不應該導致查詢性能下降。但這幾乎太巧合了。
題
所以我的問題很簡單,就是這樣:
是否有可能,一個非集群索引,其使用統計(來自 DMV /
sp_BlitzIndex
)顯示沒有使用,仍然以某種方式在受影響的表上幫助查詢性能?
是的,當 SQL Server 確定來自該索引的統計數據更準確/更有用並使用該統計數據進行估計並製定計劃時,它可以。
我遇到過 SQL Server 決定使用一個索引中的統計資訊並掃描/查找另一個索引的情況。
編輯 - 這可能不適用,因為我剛剛意識到您已禁用索引。我沒有測試過這種情況。