为什么我的索引会碎片化?

时间:2009-08-12 14:36:26

标签: sql sql-server sql-server-2005 indexing fragmentation

我一小时前有一个简单的小表(只有8个字段)我重建了表中的一个索引,将其重置为0%碎片,但现在它高达38%。

表本身有400k记录,但自从我重建索引以来,只插入了158个新记录,没有记录更新,但可能有几个删除。

为什么索引会如此分散?

索引是非唯一的,仅在一个字段上非群集。

数据库在SQL Server 2005上运行,但兼容级别为SQL Server 2000。

由于

2 个答案:

答案 0 :(得分:3)

重建时,检查该索引的填充因子。填充因子可能太高。如果是这种情况,索引页面将在重新构建索引时过满,并且添加新行将很快开始导致页面拆分(碎片)。减少重建时的填充因子将允许在页面拆分开始之前将更多新记录插入索引页面。

http://msdn.microsoft.com/en-us/library/aa933139%28SQL.80%29.aspx

答案 1 :(得分:2)

填充因子0等于100,因此您不允许任何插入空间。如果要插入,应该选择较低的填充因子。