删除一个表中的部分数据,数据量百万级。

一般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,可根据实际情况调整。

此操作删除时间快,以及生成的日志量少。

相关文章:

  • 2022-12-23
  • 2021-11-30
  • 2022-12-23
  • 2021-07-07
  • 2022-12-23
  • 2022-12-23
  • 2022-02-26
  • 2022-12-23
猜你喜欢
  • 2021-12-08
  • 2022-02-17
  • 2022-12-23
  • 2022-12-23
  • 2021-12-09
相关资源
相似解决方案