ログ配布への影響を最小限に抑えて大きなテーブルを破棄するにはどうすればよいですか?

Dec 31 2020

パージまたはドロップする必要があるログ出荷済みデータベースに、2つのセミラージ関連テーブル(284,6876,609行-156,785,176KBおよび4,2628,162行-2,212,464KB)があります。ログ配布への影響を最小限に抑えながら、これら2つのテーブルを破棄するにはどうすればよいですか?

回答

11 J.D. Dec 31 2020 at 21:08

あなたの場合はDROP、テーブル、それはすぐに使用するスペースで発生するガベージコレクションを強制していないので、それは単に基本的には、参照を削除し、最小限のログが生成されることになります。同様に、同じ結果を達成できますTRUNCATE(大きなテーブルでは、より多くのオーバーヘッドが発生する可能性があるDROPと思いますが、これを調査し、それに応じて回答を更新する必要があります)。

これは、詳細だからこそ、本当に良い品であるTRUNCATEDROP呼ばれるSQL Serverのの特徴に起因して操作がシームレスに迅速であり、最小限のログを生成する、繰延ドロップ

いずれにせよ、DELETEそれ以外の場合は、ターゲットデータベースに出荷して再適用する必要がある大量のログが生成されることを避けてください。

このStackOverflowの質問には、大きなテーブルからデータを効率的に削除するための優れた情報を含む複数の回答があります(質問に特に関連していないものもありますが、将来の参照や同様の問題を抱える他のユーザーには役立ちます)。