删除未使用的索引

时间:2020-02-17 01:15:13

标签: sql-server sql-tuning database-tuning database-tuning-advisor

我指的是未使用的索引脚本博客。

我知道如果Seek = 0Scan = 0Lookup = 0User Update = 0,那么我们应该删除索引,因为它是不需要的。

未使用的脚本给了我很多索引,但是我应该删除所有这些索引吗?能帮我理解一下,从给定脚本中识别出实际未使用的索引吗?

在删除之前,我想知道UserSeekUserScansUserLookupsUserUpdates列之间的重要性。

Unused Index Script - Click here

1 个答案:

答案 0 :(得分:1)

seeksscanslookups是有利于查询性能的读取操作。 updates插入或更新索引。这些更新被认为是索引编制的负面影响。

索引的黑手法则的第一个也是唯一的规则是:在更改索引之前,先备份。只需编写脚本并将其保存以备后用。请确保为该文件添加日期,以便可以将任何数据库性能下降相关联。

需要理解的几件事:

  1. 您要引用的列(UserSeeks等)来自MSSQL DMV(动态管理视图)。这些度量标准是短暂的,这意味着它们在每次重新启动服务(例如服务器重新启动)时都会重置。因此请记住,搜寻,扫描等不会反映历史活动。
  2. 即使是索引,它也有很多更新,而有益操作却很少-有益操作可能非常重要。例如,他们可能负责进行查询,否则查询将在一个小时左右的时间内执行一个小时。
  3. 即使您几个月都没有看到索引上的有益活动,使用该软件的软件中仍然很少有人会使用它,例如某种每月或每年的维护。

同样,在删除任何内容之前,请备份索引。