sql-server – 盲目添加缺失索引是否可以?
我经常使用SSMS测试我的慢速存储过程是否缺少索引.每当我看到“缺失索引(影响xxx)”时,我的膝盖反应就是创建新索引.据我所知,每次都会产生更快的查询速度. 我不应该继续这样做的任何理由? 解决方法很多原因.我能想到的最大问题之一是缺失的索引DMV没有考虑现有的索引. 例: 你有一张ColA,ColB,ColC的桌子. 目前你有一个关于ColA的索引.缺失的索引DMV将建议您在(ColA,ColB)上添加索引.这可能是正确的,但聪明的做法是将ColB添加为现有索引的第二个键.否则,您的覆盖范围会重复,浪费空间和开销. 同样,如果您有ColB INCLUDE(ColA)的索引,它可能会建议ColB INCLUDE(ColC)的索引.同样聪明的做法是将ColC添加到现有索引中的包含列表中. 建议的索引具有极窄的视图 – 它们只查看单个查询或单个查询中的单个操作.他们没有考虑已存在的内容或您的其他查询模式. 您仍然需要一个有思想的人来分析整体索引策略,并确保您的索引结构是高效和有凝聚力的. 如果只是添加所有建议的索引没有问题,那么甚至不需要建议它们 – 它们将自动实现. (编辑:上饶站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |