2010-02-25 80 views
1

我从一个非常大的表中删除了一些行。然后,我运行了一个通常在几秒钟内运行的查询,发现它在删除行后运行得非常缓慢。我重新建立索引并运行查询,发现它又快了。可以删除这些行导致索引被分割?从表中删除行导致索引碎片化?

回答

4

是的,删除行会影响索引,并且应该进行维护以使索引与现有数据保持相对同步。

重建索引可能是不必要的 - 根据MS文档,如果物理碎片为30%或更多,则只需执行此操作。 REORGANIZE通常是一个更好的选择 - 认为它是破坏指数。

这是一个good article series on SQL Server Index Fragmentation

+0

谢谢你与我联系的页面非常有帮助。 – Bmw 2010-02-25 19:26:15

+0

@ user203097:不客气 – 2010-02-25 19:28:43

+0

@Brent Ozar:伟大的文章:) – 2010-02-25 19:29:57