SQL Server百万级大数据量删除
删除一个表中的部分数据,数据量百万级。
一般delete from 表
delete from 表名 where 条件;
此操作可能导致,删除操作执行的时间长;日志文件急速增长;
针对此情况处理 delete top from
declare @onecount int set @onecount=1000000 print getdate() while 1=1 begin delete top(@onecount) from ysh where date<'2016-06-21' ; --此处不能写任何语句 print也可能导致无法全部删除@@rowcount影响行数 IF (@@rowcount<@onecount) BREAK; print getdate() end
说明 :@onecount 每次删除的数据量,此处设置100w,可根据实际情况调整。
此操作删除时间快,以及生成的日志量少。