You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何加快1.5亿条记录SQL Server大表的DELETE语句执行速度

优化方案

  • 清理冗余索引
    你创建的NCI_Features_ParentType_Parent(索引列顺序为Parent、ParentType)属于完全冗余索引:你表的聚集主键PK_Feature前两列就是Parent、ParentType,非聚集索引本身会存储聚集键作为行定位符,该索引无任何查询收益,反而会在DELETE操作时额外增加索引维护开销,直接删除即可。
    若Features_Data_INDEX没有其他业务查询依赖,也可暂时删除,进一步降低DELETE操作的索引维护成本。
  • 更新表统计信息
    1.5亿行的大表如果统计信息过期,会导致优化器错误评估符合条件的行数,选错执行计划。先执行以下命令更新统计信息:
    UPDATE STATISTICS dbo.Features WITH SAMPLE 10 PERCENT
    
    如果执行后性能无明显提升,可改为全量扫描更新:
    UPDATE STATISTICS dbo.Features WITH FULLSCAN
    
  • 优化适配查询的非聚集索引
    你现有的NCI_Features_Parent_ParentType(索引列顺序ParentType、Parent)完全匹配DELETE语句的WHERE过滤逻辑,两个过滤分支都是先匹配ParentType再匹配Parent值,是该查询的最优索引。该索引可以让优化器将WHERE的OR条件拆分为两个独立的索引查找,快速定位到需要删除的行,避免全表扫描1.5亿条数据。如果该索引碎片率超过30%,执行重建操作降低碎片提升查找效率:
    ALTER INDEX NCI_Features_Parent_ParentType ON dbo.Features REBUILD
    
  • 绑定执行计划(可选)
    若以上操作完成后优化器仍未选择该索引执行查询,可使用SQL Server的计划向导功能,无需修改原查询语句,即可强制该DELETE语句使用NCI_Features_Parent_ParentType索引执行,避免全表扫描。

内容的提问来源于stack exchange,提问作者Walczak Jakub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 23:51:02