来自地狱的覆盖指数

时间:2018-02-22 23:18:54

标签: sql-server tsql indexing include

我正在尝试建立我的DBA技能,但我真的是一名SQL开发人员。我遇到了一组非常广泛的表(在公司中最常用的表),并且在过去的某个时刻非sql人创建了一个非聚集索引,其密钥为:

状态(varchar(20)),只有6个可能的值,

和有效(位)

然后将每个(70ish)字段放在INCLUDE子句的表中。

我的想法有点被吹嘘。

我的问题是,这有什么作用?我必须向我的上级提出要删除它的案例。

我想有人认为这样做可以获得给定状态的每个活动记录,而不必转到叶子(?)级别。

我在想由于基数非常低,它总会进行索引扫描(SYS.DM_DB_INDEX_USAGE_STATS显示相同数量的user_seeks和user_scans),你必须不断更新它。

这就是构建索引的一种奇怪方式,我猜不出它会产生的所有负面影响。

我也希望能更好地理解宽键的缺点(但这不是关键所在)

0 个答案:

没有答案