在 SQL Server 2008 中,一张表可以有多少个聚集索引?
一、正如这里所述:
“聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,按照姓氏排列数据。由于聚集索引决定了表中数据的物理存储顺序,因此一个表只能包含一个聚集索引。”
针对 SQL Server 2005: 1 个聚集索引 + 249 个非聚集索引 = 250 个索引
针对 SQL Server 2008: 1 个聚集索引 + 999 个非聚集索引 = 1000 个索引
1.
虽然有一些原因,但只允许一个聚集索引似乎有点奇怪。聚集索引内部排序并不能真正解释为什么只有一个这样的索引,因为非聚集索引与聚集索引完全相同。非聚集索引可以像聚集索引一样包含表中的所有数据。因此,在某些情况下,创建多个“聚集”索引或干脆取消区分可能是相当合理的。但是SQL Server不允许您创建多个。
在 SQL Server 中只有一个。DB2 提供了更多的可能性,但代价是:二维聚集需要大量的内存(与行数的平方成比例)。
INSERT
性能的原因一样...每个随机 GUID 都会强制对所有记录进行重新排序。 - Matthew