【发布时间】:2010-02-25 19:06:28
【问题描述】:
我从一个非常大的表中删除了一些行。然后我运行了一个通常在几秒钟内运行的查询,发现它在删除行后运行非常缓慢。我重新构建了索引并运行了查询,发现它又快了。删除这些行会导致索引碎片化吗?
【问题讨论】:
标签: sql sql-server database sql-server-2005 tsql
我从一个非常大的表中删除了一些行。然后我运行了一个通常在几秒钟内运行的查询,发现它在删除行后运行非常缓慢。我重新构建了索引并运行了查询,发现它又快了。删除这些行会导致索引碎片化吗?
【问题讨论】:
标签: sql sql-server database sql-server-2005 tsql
是的,删除行会影响索引,应进行维护以使索引与现有数据相对同步。
重建索引可能是不必要的 - 根据 MS 文档,如果物理碎片达到 30% 或更多,您只需要这样做。 REORGANIZE 通常是更好的选择 - 将其视为对索引进行碎片整理。
【讨论】: