首页 > 解决方案 > 非聚集索引 - 包括 2 列始终为空 - 改进搜索?

问题描述

在将它们添加到我们的 2019 SQL 数据库之前,我被要求查看一系列索引。我不是索引人员,通常不这样做,所以我试图理解为什么我应该在下面添加一个。

下面的代码将两列添加到非聚集索引中,而这两列始终为空。本质上,我有一个包含 3 个“子类别”字段的 Part Master 表。我们只使用这些子类别字段中的 1 个并且从不打算使用其他字段,因此填充了 part_subgrp1 而 part_subgrp2 和 3 始终为空。我的同行一直说它会提高性能,但他们无法解释原因,我似乎无法理解两个空白字段如何帮助优化搜索(至少以有意义的方式)。

这是代码:

5. new index from table partmstr
CREATE NONCLUSTERED INDEX [idx_partmstr_sellable_inclPartSubgrp2] ON [dbo].[partmstr]
(
    [sellable], [part_grp]
)
include ([part_subgrp2],[part_subgrp3]  )
GO

我不知道这对这个问题很重要,但该表有 343 列和 7704 条记录(并确认这两个部分子组对于每个子组都是空的)。

如果他是正确的,我只是想更好地理解为什么,所以我不觉得我只是在放垃圾。

谢谢!

我是新手,所以如果我把它顶起来,我会完全纠正它。谢谢!

标签: sql-serversearchindexingnullnon-clustered-index

解决方案


推荐阅读