适当的指数订单

时间:2013-06-28 18:40:13

标签: sql sql-server indexing

我将两个字段facilityCode和facilitySubCode添加到现有表中。

ALTER TABLE SampleTable ADD facilityCode int not null
ALTER TABLE SampleTable ADD facilitySubCode int null

应用程序将使用facilityCode或facilitySubCode从此表中搜索记录,但不能同时使用两者。我想添加一个索引来帮助解决这个问题,但我不确定是否要创建:

  

1)包含两列的单个索引。如果是,则列出哪一列   第一?

     

2)2个指数,每个指数由1列组成。

作为信息,facilityCode可以有0到多个子代码,子代码只有1个设施代码。就使用情况统计而言,我不知道哪种搜索会更受欢迎,按设施搜索或按子代码搜索。我们可以假设MOST记录将同时具有facilityCode和facilitySubCode。

我应该选择哪个选项?为什么?

1 个答案:

答案 0 :(得分:2)

如果您想要facilityCodefacilitySubCode进行搜索,但不想同时搜索两个列,则需要2个索引,每列一个。

两个列中的单个索引不理想的原因是因为任何列都不在索引的前沿,因此只能使用该索引来搜索该列。

有关为何会出现这种情况的详细信息,I would suggest reading the answers to this question