可以将非唯一列定义为聚集索引和非聚集索引。但是,在聚集索引的情况下,如果列未定义为唯一,SQL Server 会向索引列添加一个 4 字节整数。这样做是为了在内部保持记录的“唯一性”,即使两个或多个记录可能具有该列的值。为什么在非聚集索引的情况下不需要这个整数?
问问题
1017 次
2 回答
7
非聚集索引已包含聚集索引列,因此它可以引用与其关联的确切行。因此,对于聚集索引上的唯一标识符,非聚集索引也将包括唯一标识符。
这里有一个很好的解释:Understanding and Examining the Uniquifier in SQL Server
于 2012-09-07T17:39:51.270 回答
0
我相信这与行定位器有关。
非聚集索引行的宽度 = 非聚集索引列的宽度 + 聚集索引列的宽度 = 列数据类型的大小 + 列数据类型的大小。
于 2012-09-07T17:41:02.323 回答