【问题标题】:Can dropping and recreating an index speed up a SQL delete?删除和重新创建索引可以加速 SQL 删除吗?
【发布时间】:2010-10-15 15:44:05
【问题描述】:

我正在对具有除日期以外的字段的索引的表执行一些大型的基于日期的删除查询。我被告知删除这些索引,执行删除,然后重新构建索引可能比仅对索引表运行删除更快。是这样吗?

我明白为什么在没有索引的情况下实际删除记录会更快,但我觉得以后必须重建它的行为会抵消所获得的任何速度优势。

【问题讨论】:

    标签: sql-server-2008 indexing sql-delete


    【解决方案1】:

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

    当行数较少或要删除的行数较少时,首先删除索引不会对您有利。但是,如果您有一个大表和许多要删除的行,则更新索引的成本会增加,直到您达到维护索引的成本高于删除和重新创建索引的程度。

    由于您表示要进行多次大型删除,我的直觉是您遇到的情况是删除和重新创建索引会有所帮助。

    【讨论】:

      【解决方案2】:

      如果您的索引的填充因子很差,那么我相信它会。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-13
        • 2023-03-16
        • 2011-03-22
        • 1970-01-01
        相关资源
        最近更新 更多