未使用的 NONCLUSTERED INDEX 还能提高查询速度吗?

Nat*_*teJ 13 database-design sql-server index-tuning nonclustered-index sql-server-2016

这是一个奇怪的情况,但我希望有人有答案。

在一些性能故障排除期间,我们按照sp_BlitzIndex. 第二天我们检查了它的使用情况,它显示0 次读取0 次扫描/搜索,0 次单例查找),因此我们禁用了它。

就在下一分钟,我们收到了与我们在添加 INDEX 时首先尝试检查和解决的应用程序缓慢(性能问题)相同的投诉。

现在,我知道理论上,这听起来纯属巧合。INDEX 是可证明的,可衡量的,NOT USED。禁用它应该导致查询性能下降。但它几乎TOO巧合。

所以我的问题很简单,就是这样:

是否有可能,一个未使用的索引(来自 DMV / sp_BlitzIndex)的使用统计数据显示没有使用,仍然以某种方式帮助受影响表上的查询性能?

jes*_*esi 13

是的,当 SQL Server 决定来自该索引的统计数据更准确/有用并使用该统计数据进行估计并提出计划时,它可以。

我遇到过 SQL Server 决定使用一个索引中的统计信息并扫描/查找另一个索引的情况。

编辑 - 这可能不适用,因为我刚刚意识到您已禁用索引。我还没有测试过这种情况。