2010-10-15 101 views
5

我正在对日期以外的字段使用索引的表执行一些基于日期的大删除查询。我被告知,删除这些索引,执行删除,然后重新构建索引可能比仅对索引表执行删除操作要快。是这样吗?可以删除和重新创建索引加快SQL删除?

我可以看到为什么在没有索引的情况下实际删除记录的速度会更快,但我觉得以后不得不重建它的行为会否定任何速度优势。

回答

1

当决定先删除索引时,必须比较删除期间维护索引的成本(或时间)与删除后重新创建索引的成本。两个最有影响力的因素是表格中的行数和被删除的数字或行数。

当行数很少或要删除的行数很少时,首先删除索引不会使您受益。但是,如果您有大表和要删除的行数多,则更新索引的成本会增加,直到达到维护索引成本高于删除并重新创建索引的成本点。

由于您表明您正在进行多次大型删除,我的预感是您有一种情况,即删除和重新创建索引会有所帮助。

0

如果你的索引有一个不好的填充因子,那么我相信它会。