我在MS SQL中有两列相当大的表(超过100万行)的索引。 我需要一个覆盖这两列的索引加上第三列,以提高不同查询的性能。
我应该修改现有索引以包含所有三列还是创建一个全新的列?
答案 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
因此,如果您在第一列上使用除相等之外的任何比较,则第二列无用。如果添加第三列,则同样适用
总之,如果您需要覆盖问题,可以添加第三列,并且它们也属于上面的示例类别(第一列中的相等)。