非聚类索引中的行定位器

Nil*_*ish 2 sql-server sql-server-2005 sql-server-2008 non-clustered-index

我正在阅读Non Clustered Index哪些内容" Nonclustered索引仅包含索引列和行定位器中指向实际数据行的值,而不是包含数据行本身.这意味着查询引擎必须采取额外步骤才能找到实际数据."

查询 - 我不清楚Row Locator.我假设它不是任何Primary key.背景中发生的事情与Row-Locator唯一标识行有关.

And*_*mar 8

如果表具有唯一的聚簇索引,则"行定位器"由聚簇索引的列组成.

对于非唯一聚簇索引,"行定位器"由聚簇索引的列组成,另外还有SQL Server添加的新字段,以使引用唯一.新字段对用户不可见.它被称为"uniqueifier",由四个字节组成.

没有聚簇索引(也称为堆)的表中,"行定位符"是RID或行标识符.RID指向物理位置.它由文件标识符(ID),页码和页面上的行号组成.

"行定位器"的一个实际结果是,为具有大量索引的表创建一个小主键是有意义的:) 这个MSDN页面的完整详细信息.