sql-server – 盲目添加缺失索引是否可以?

前端之家收集整理的这篇文章主要介绍了sql-server – 盲目添加缺失索引是否可以?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我经常使用SSMS测试我的慢速存储过程是否缺少索引.每当我看到“缺失索引(影响xxx)”时,我的膝盖反应就是创建新索引.据我所知,每次都会产生更快的查询速度.

我不应该继续这样做的任何理由?

解决方法

很多原因.

我能想到的最大问题之一是缺失的索引DMV没有考虑现有的索引.

例:

你有一张ColA,ColB,ColC的桌子.

目前你有一个关于ColA的索引.缺失的索引DMV将建议您在(ColA,ColB)上添加索引.这可能是正确的,但聪明的做法是将ColB添加为现有索引的第二个键.否则,您的覆盖范围会重复,浪费空间和开销.

同样,如果您有ColB INCLUDE(ColA)的索引,它可能会建议ColB INCLUDE(ColC)的索引.同样聪明的做法是将ColC添加到现有索引中的包含列表中.

建议的索引具有极窄的视图 – 它们只查看单个查询或单个查询中的单个操作.他们没有考虑已存在的内容或您的其他查询模式.

您仍然需要一个有思想的人来分析整体索引策略,并确保您的索引结构是高效和有凝聚力的.

如果只是添加所有建议的索引没有问题,那么甚至不需要建议它们 – 它们将自动实现.

猜你在找的MsSQL相关文章