大表分批删除脚本

昨天干了件傻事,在公司新搭了个测试库,把正式库还原到测试库后,
把恢复模式改为简单,然后无脑写了个脚本把所有业务表今年以前的数据删除。之后就回家了。
今天跑过来上去一看,呃的神,测试库日志达到了200多GB。这才意识到单个业务表的数据量比较大,
而我用单个DELETE语句来删除的,单个事务忒大了导致日志疯涨到200多GB。
下面分享下大菠萝兄提供的分批删除脚本:

WHILE 1=1
BEGIN
    DELETE TOP (5000) FROM TB
    WHERE SYSDATE <= '2013-12-31'
    IF @@ROWCOUNT < 5000
        BREAK;
    WAITFOR DELAY '00:00:01'
END

 

posted on 2014-07-30 10:43  万剑齐发  阅读(1292)  评论(9编辑  收藏  举报