【发布时间】:2018-07-03 16:48:16
【问题描述】:
多年来,我看到各种文章表明在 SQL Server 数据库中索引外键列是个好主意。我们的大型数据库大部分都在每个外键列上都有索引。
不过,在查看 MS DM 视图中的索引使用情况时,其中许多索引的明显使用情况(搜索、扫描和查找)显示为零。
删除其中一些索引将节省大量磁盘空间,并且使用率似乎为零,但是否存在各种内部和显式 SQL 服务器操作和连接仍在以某种方式使用这些索引,不一定会出现在MS index dm 查看统计数据?
如果有任何使用它们的机会,我不想删除它们并损害性能。
【问题讨论】:
-
感觉你在dba.stackexchange.com上研究会得到更好的结果
-
零使用从什么时候开始?索引使用 DMV 在服务重启甚至索引删除/创建等事件时重置。在确定索引无用之前,请确保您观察了整个商业周期。它可能仅用于月末或季度末运行的报告,当 CTO 突然感兴趣时,可能会在某处明确暗示,等等。当然,使用频率与该索引在使用时的有用程度无关用来。当然可以随意过早地删除这些索引中的任何一个。但是,当指数预计会存在而实际不存在时,请为后果做好准备。
-
监控多个客户端数据库超过 6 个月,大多数示例系统没有重新启动并且有几个月的历史记录。在抽样中,我确保系统至少运行了 60 天以上,或者它不被视为 DM 零使用候选的一个很好的例子。我相信 DM View 统计数据在我收集的汇总数据中可能是可靠的,并且应该涵盖罕见的使用示例。我想这个问题仍然主要是同一个问题。连接是否以正常方式使用索引,在 DM 视图中将其切换为搜索、扫描或查找?
标签: sql-server performance indexing