修改现有索引或添加新索引

时间:2017-10-13 09:42:10

标签: sql-server indexing

我在MS SQL中有两列相当大的表(超过100万行)的索引。 我需要一个覆盖这两列的索引加上第三列,以提高不同查询的性能。

我应该修改现有索引以包含所有三列还是创建一个全新的列?

1 个答案:

答案 0 :(得分:0)

  

我应该修改现有索引以包含所有三列还是创建一个全新的列?

这取决于您查询表格的方式。

假设你有以下索引..

create index nci on tablea(Col1,col2)

以下查询将使索引变得光彩照人

select * from table1 where col1=1 and col2>10
select * from table1 where col1=1 and col2=10

以下查询不满足上述索引

select col1,col2 from table1 where col1>40 and col2=40

因此,如果您在第一列上使用除相等之外的任何比较,则第二列无用。如果添加第三列,则同样适用

总之,如果您需要覆盖问题,可以添加第三列,并且它们也属于上面的示例类别(第一列中的相等)。