SqlServer极速删除百万级别数据_sql删除10000条语句

SqlServer极速删除百万级别数据_sql删除10000条语句

编码文章call10242025-03-03 10:34:4339A+A-

百万级别数据表,进行有条件的数据删除,这个时候采用delete from的一次性删除的方法是很不明智的:

1、delete操作会被完整记录到日志里,它需要大量空间和时间

2、如果删除中间发生中断,一切删除会回滚(在一个事务里)

3、同时删除多行,记录上的锁也许会被提升为排它表锁,从而阻碍操作完成之前有对这个表的操作(有时候会妨碍正常的业务)所以一般采取分批删除的方法

所以,通过分批次地删除数据可以大大提升删除效率,缩短删除时间:

declare @perCount int; 
set @perCount = 6000;
while 1=1
begin
    delete top(@perCount) from 表 where CrtDate < '2020-12-23';
    if(@@rowcount<@perCount) break;
end
点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4