SQL 快速删除大量(百万级)数据
1、这个时候采用一次性删除的方法是很不明智的。1、delete操作会被完整记录到日志里,它需要大量空间和时间;2、如果删除中间发生中断,一切删除会回滚(在一个事务里);3、同时删除多行,记录上的锁也许会被提升为排它表锁,从而阻碍操作完成之前有对这个表的操作(有时候会妨碍正常的业务)所以一般采取分批删除的方法.所以我们可以通过分批次迁移压缩数据,这样可以大大提升执行速度和执行效率首先通过set rowcount 来控制每次删除的记录数执行Sql语句SET ROWCOUNT 0; 记录每次执行删除的条数通过TOP的方法,并且使用循环WHILE 1 = 1BEGIN DELETE TOP(5000) FROM dbo.Table WHERE time< '2016-12-12'; IF @@rowcount < 5000 BREAK;END