为了账号安全,请及时绑定邮箱和手机立即绑定

如何在没有日志的情况下删除SQL中的表大数据?

如何在没有日志的情况下删除SQL中的表大数据?

一只名叫tom的猫 2019-12-17 15:06:37
我有一个大数据表。该表中有1000万条记录。什么是此查询的最佳方法   Delete LargeTable where readTime < dateadd(MONTH,-7,GETDATE())
查看完整描述

3 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

只是一个小的更正。设置变量后必须使用COMMIT,否则WHILE将仅执行一次:


DECLARE @Deleted_Rows INT;

SET @Deleted_Rows = 1;


WHILE (@Deleted_Rows > 0)

BEGIN

    BEGIN TRANSACTION


    -- Delete some small number of rows at a time

    DELETE TOP (10000)  LargeTable 

    WHERE readTime < dateadd(MONTH,-7,GETDATE())


    SET @Deleted_Rows = @@ROWCOUNT;


    COMMIT TRANSACTION

    CHECKPOINT -- for simple recovery model


END


查看完整回答
反对 回复 2019-12-17
  • 3 回答
  • 0 关注
  • 544 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信