非聚集索引,包含与几乎相同的非聚簇索引;多个查询范围

时间:2010-12-01 18:44:31

标签: sql-server tsql indexing

我在DB中有两个现有索引,如下所示

  1. 创建NONCLUSTERED INDEX IndexTable1      在表(fkAnothertable)

  2. 创建非集群索引IndexTable2      在桌子上(fkAnothertable)              包括(pkTable)

  3. 我有预感,我的研究似乎指出,任何调用#1的查询都会被#2满足,#1就会浪费。我找不到确定的答案。

    这个假设是否正确,我可以放弃#1并可能提高性能吗?

1 个答案:

答案 0 :(得分:2)

是。 #2完全覆盖#1,事实上反之亦然。 pkTable是您的聚集索引键吗?如果是这样,它将包含在#1中(在密钥级别,因为非聚集索引未声明为唯一)。

如果pkTable不是群集密钥,则#1仍然会满足#2上的查询,但#2可能会占用更多页面,从而进行扫描#1效率低一点。