sybase高效地删除大数据量记录

 

create procedure sp_delete_records
    @ld_day numeric(10) = -30      
as        
declare       
    @max_time datetime
	
	set  rowcount 1000
	  
	select @max_time = dateadd(dd,@ld_day,convert(datetime,convert(varchar,getdate(),111)))
	
	select 1
	while(@@rowcount>0)           
	  begin           
		  dump tran YOUR_DATABASE with truncate_only           
		  delete from YOUR_TABLE where lasttime < @max_time             
	  end
	
	set  rowcount 0
return

 

以上为存储过程

原理:使用循环,每次删除最多1000条记录,然后清除log,直到所有记录都删除

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值