我在表上有几个非聚集索引,这些表经常插入行。根据 SQL Server 的数据,这些索引目前大约有 90% 的碎片。如果我重建它们,它们的碎片率会下降到约 5%,但它们很快就会在几个小时内恢复到 90%。
这是怎么回事?为什么我的索引如此持续地碎片化?我需要担心这个问题吗?
答案1
每当发生页面分割时,非聚集索引就会变得碎片化;这种情况主要发生在插入非连续数据时,即不是按索引顺序插入(按索引顺序插入时偶尔也会发生这种情况 - 但频率并不高。)
考虑用 50% 的填充重建它们,即所有当前页面将留半空。
这样你就有时间将索引加倍,然后碎片才会再次成为问题。