【基本最適化実践】【1.5】大量のデータをオンラインで安定的に削除/更新する方法

2135 ワード

考え方:バッチで削除/更新する必要があります.そうしないと、トランザクションのボリュームが大きすぎて、削除時間が長すぎて、問題が発生しないようにバックアップテーブルが必要です.
ベストプラクティスは以下の通りです.ケースを削除し、同じように更新するには、ここでは特に書かないでください.
while 1=1
begin
WAITFOR DELAY '00:00:01' 
DELETE TOP (3000) A output deleted.* into Db_Del..del_sys_users_goods 
FROM Db_Tank..sys_users_goods A where isexist=0

IF @@ROWCOUNT<3000 OR @@ERROR<>0 OR convert(varchar(12),getdate(),24) > '18:00:00' 
BREAK 
end