Col*_*lin 5 indexing sql-server-2008 sql-delete
我正在对除日期以外的字段的索引的表执行一些基于日期的大型删除查询.我被告知删除这些索引,执行删除,然后重新构建索引可能比仅对索引表运行删除更快.是这样的吗?
我可以看到为什么在没有索引的情况下实际删除记录会更快,但我觉得以后必须重建它的行为会否定所获得的任何速度优势.
当决定首先删除索引时,您必须将删除期间维护索引的成本(或时间)与删除后重新创建索引的成本进行比较。最有影响力的两个因素是表中的行数和删除的行数。
当行数较小或要删除的行数较小时,首先删除索引不会给您带来好处。但是,如果您有一个大表和许多要删除的行,更新索引的成本就会增加,直到维护索引的成本比删除和重新创建索引的成本更高。
由于您表明您正在执行多次大型删除,因此我的预感是,您会遇到删除和重新创建索引会有所帮助的情况。