首页 > 代码库 > 大表分批删除脚本

大表分批删除脚本

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

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