我有一个简单的小表(只有 8 个字段),一小时前我重建了表上的一个索引,将其重置为 0% 碎片,但现在高达 38%。
该表本身有 400k 条记录,但自从我重建索引以来只插入了 158 条新记录,记录没有更新,但可能有几次删除。
为什么索引会变得如此碎片化?
该索引是非唯一的,仅在一个字段上不聚集。
数据库在 SQL Server 2005 上运行,但兼容级别为 SQL Server 2000。
谢谢
我有一个简单的小表(只有 8 个字段),一小时前我重建了表上的一个索引,将其重置为 0% 碎片,但现在高达 38%。
该表本身有 400k 条记录,但自从我重建索引以来只插入了 158 条新记录,记录没有更新,但可能有几次删除。
为什么索引会变得如此碎片化?
该索引是非唯一的,仅在一个字段上不聚集。
数据库在 SQL Server 2005 上运行,但兼容级别为 SQL Server 2000。
谢谢
重新构建该索引时检查该索引的填充因子。填充因子可能太高。如果是这种情况,在重新构建索引时索引页面将太满,并且添加新行很快就会开始导致页面拆分(碎片)。减少重建时的填充因子将允许在开始发生页面拆分之前将更多新记录插入到索引页面中。
http://msdn.microsoft.com/en-us/library/aa933139%28SQL.80%29.aspx
填充因子 0 等于 100,因此您不允许任何插入空间。如果要插入,您应该选择较低的填充因子。