大表バッチ削除スクリプト


昨日バカなことをして、会社に新しいテストライブラリを作って、正式なライブラリをテストライブラリに復元した後、回復モードを簡単に変えて、それからスクリプトを書いてすべての業務表の今年以前のデータを削除しました.そして家に帰りました.今日走ってきてみると、ええと、テストライブラリのログは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