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