大表分批删除脚本
昨天干了件傻事,在公司新搭了个测试库,把正式库还原到测试库后,
把恢复模式改为简单,然后无脑写了个脚本把所有业务表今年以前的数据删除。之后就回家了。
今天跑过来上去一看,呃的神,测试库日志达到了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