L Server索引删除-注意事项

2021-02-25 14:32

I我已经做了一些索引使用情况检查(使用DMV seek、scan和lookup stats),并在我们最大和最繁忙的数据库中确定了一些“未使用”的索引。我很感兴趣的意见,这个

解答动态

  • 如果有一个聪明的人决定在应用程序的查询中使用索引提示,删除所述索引将导致查询在运行时彻底失败。
    由于执行频率不高(取决于系统重新启动的频率),季度或年终报告之类的内容可能不会显示任何索引使用情况。

    • 如果索引没有强制唯一性,则它仅用于(可能)协助读取访问。我只是提醒不要删除可能用于季末/年终报告作业的索引,这些作业是为了避免长时间锁定表而创建的。您必须使用一些判断和表格知识来确定这一点,或者等到收集到足够的信息才能确定。

      • 更新是您应该权衡索引的积极方面(查找和扫描)的一个更新。如果更新很少,那么开销是微乎其微的。除非您考虑磁盘空间,但我假设您追求的是“什么使事情变得更慢”,而不是“什么使用存储”。
        请注意,如果索引自启动以来就没有被触及过,您将无法在中看到它sys.dm\u db\u索引\u使用情况\u统计. OTOH,那么它不会带来任何操作开销,因此您可能不会费心(根据上述推理)。

        • 除了唯一索引之外,支持外键的索引通常也应该保留,即使它们很少使用。

          • 如果您不确定是否有可能使用索引的定期报告或作业正在运行,则最好保留建议禁用索引而不是删除它,因为如果您发现它毕竟是必需的,那么您就可以将定义放在原位了。
            ALTER index IX \u Employee \u ManagerID ON人力资源。员工禁用; 和
            alter INDEX IX\u Employee\u ManagerID ON人力资源。员工重建; 如果你发现索引毕竟是需要的

            • End

            免责声明:

            本页内容仅代表作者本人意见,若因此产生任何纠纷由作者本人负责,概与琴岛网公司无关。本页内容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。