Sql-Server

未使用的 NONCLUSTERED INDEX 還能提高查詢速度嗎?

  • December 1, 2016

這是一個奇怪的情況,但我希望有人能給出答案。

在一些性能故障排除期間,我們按照sp_BlitzIndex. 第二天我們檢查了它的使用情況,它顯示了0 次讀取0 次掃描/搜尋,0 次單例查找),所以我們禁用了它。

就在下一分鐘,我們收到了關於我們在添加 INDEX 時首先嘗試檢查和解決的相同應用程序緩慢(性能問題)的投訴。

現在,我從理論上知道,這聽起來純屬巧合。該指數是可證明的、可衡量的、未使用的。禁用它應該導致查詢性能下降。但這幾乎太巧合了。

所以我的問題很簡單,就是這樣:

是否有可能,一個非集群索引,其使用統計(來自 DMV / sp_BlitzIndex)顯示沒有使用,仍然以某種方式在受影響的表上幫助查詢性能?

是的,當 SQL Server 確定來自該索引的統計數據更準確/更有用並使用該統計數據進行估計並製定計劃時,它可以。

我遇到過 SQL Server 決定使用一個索引中的統計資訊並掃描/查找另一個索引的情況。

編輯 - 這可能不適用,因為我剛剛意識到您已禁用索引。我沒有測試過這種情況。

引用自:https://dba.stackexchange.com/questions/156837