非唯一索引与全表扫描

时间:2018-12-02 14:01:43

标签: sql-server indexing

当列为非聚集索引列时,其键行地址关系存储在其他位置。

我了解索引列数据类型是否为数字,SQL Server正在使用B树搜索机制来找到答案。 列类型是文本时如何处理,尤其是索引中可以有重复的值?

SQL搜索具有键行地址对和表的非索引列的单独表之间有什么区别?

1 个答案:

答案 0 :(得分:1)

  

当列类型是文本时,尤其是索引中可以有重复值的时候如何?

如何处理varchar / nvarchar值上的非聚集索引没有区别。尽管最大密钥大小为1700字节。

对于重复值,所有BTree索引实际上都存储为唯一索引。如果索引不唯一,则将聚集索引键添加到非叶页上的每个键值。参见Geek City: More About Nonclustered Index Keys

  

SQL搜索具有键行地址对和表的非索引列的单独表之间有什么区别?

很少。如果您查看查询计划,您将看到本质上非聚集索引和聚集索引之间的联接是什么,就像在单独的表和聚集索引之间的联接一样。