SQL Server索引

4

聚集索引扫描和聚集索引查找有什么区别?

4个回答

4
聚簇索引扫描是对具有聚簇索引的表进行的全表扫描。默认情况下,主键是聚簇索引,因此一个有主键的表就是一个有聚簇索引的表。
当谓词包含除主键以外的列(且没有其他可用的索引来满足谓词)时,将发生聚簇索引扫描。
当谓词包含索引中的一个或多个列时,将发生聚簇索引搜索(和非聚簇索引搜索)。这允许查询处理器基于索引查找行范围,而无需扫描。

2

聚集索引扫描会从开头到结尾扫描整个聚集索引(=数据表)。

聚集索引搜索仅扫描该索引的一部分/节(希望很小)-->速度更快!

Marc


2

扫描会遍历索引中的每个条目,而查找只会遍历到被查询的项,使得查找速度更快。通常情况下,应该尽量避免使用扫描,除非必要。


1

当条件符合索引数据时,使用搜索可以有效地利用索引,例如在查询中:

select Name from Table where Group = 42

由于比较是一个直接的值,因此可以轻松地用来定位索引中物品所在的部分。

当条件更为复杂,需要评估索引中的每个值时,扫描就会被使用,例如在查询中:

select Name from Table where right(cast(group as varchar), 2) = '00'

由于该条件使用了从索引中计算出的值,很难用来隔离索引的一部分,因此必须评估所有项目。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接