Oli*_*ver 7 sql-server indexing
在DMV中sys.dm_db_missing_index_group_stats,有一个名为的字段avg_user_impact.按照BOL,这显示了
如果实现了缺少的索引组,则用户查询可能会遇到的平均百分比收益.该值意味着如果实现了缺少的索引组,查询成本将平均下降此百分比.
当我运行查询以查找对性能影响最大的缺失索引时,我看到一些声称avg_user_impact将会成千上万的索引.
我使用其中一个建议构建了一个索引,并且从未根据DMV使用过sys.dm_db_index_usage_stats.一旦我禁用了索引,它立即再次显示为缺失索引.
是否有可能一旦该avg_user_impact字段显示超过100,它是错误的?或者这是一个如何仍然必须测试推荐索引的实例的例子?我做错了什么或误解了什么?
建议的索引和用户影响都是来自成本优化器的估算,并且如您所见,并不能保证它们始终是正确的.我认为用户影响列可以超过100个设计(尽管我们不得不希望SQL Server团队的MS开发人员在这里回答真正的答案.)测试是否创建显示的索引始终是至关重要的. DMV是否有效.我有相同的经验,其中显示索引,但一旦创建实际上没有得到使用,可能是由于查询的细节或表中的数据分布等.视图大多数时候是正确的,特别是对于简单的情况,但并非总是如此
另外,要小心创建真正宽的索引,因为它们可能会影响插入/更新性能,而不是帮助选择性能,具体取决于服务器的繁忙程度.