0

我试图了解非聚集索引如何在表中查找数据。我认为,非聚集索引在对索引列值进行查找时只是指向一个数据页或一组数据行,而不是指向单个行。也就是说,在使用非聚集索引时,我们仍然需要扫描一个数据页来获取我们正在查找的具体数据行。这是真的?

4

1 回答 1

2

如果在 HEAP(没有聚集索引的表)上定义了非聚集索引,则每个索引条目都包含行地址:(FileId:PageNumber:SlotNumber) 所以在这种情况下不需要搜索。

如果在具有聚集索引的表上定义了非聚集索引,则非聚集索引中的每一行都包含聚集索引键。要到达行,SQL Server 必须在聚集索引上执行查找以找到包含页,然后扫描该页中的行。

于 2012-10-18T00:45:15.910 回答