2

我刚刚意识到我在 Timestamp 上有一个以降序排列的聚集索引。我正在考虑将其切换为升序,以便在插入新的、不断增加的时间戳时,将它们添加到表的末尾。就目前而言,我怀疑它必须在表的开头添加行,我想知道 SQL Server 是如何处理的。

它是否可以在表的开头有效地分配新页面,并有效地将新行插入这些页面,或者按照时间戳的顺序填充页面并在末尾使用升序聚集索引分配新页面会更好。

4

1 回答 1

1

无论您在开始或结束时添加,实际上都是一样的。

页面填满,页面拆分,分配新页面......

新页面可能是连续的,也可能不是连续的,无论它是在开头还是结尾。这就是为什么您定期运行 ALTER INDEX 等。

在实践中,聚集索引的 ASC/DEC 顺序对于 SELECT/ORDER BY 更重要......尽管我在 SQL Server 2005 及更高版本中注意到这一点的情况较少。

于 2010-09-04T12:53:26.663 回答