0

SQL Server に最大 10 億行の非常に巨大なテーブルがあります。次のような単純なコードを使用して、このテーブルから別のテーブルにデータを移行する必要があります。

SET XACT_ABORT ON
BEGIN TRAN

INSERT INTO TargetTable
SELECT Col1, Col2, ... ColN 
FROM 
    HugeTable ht 
    INNER JOIN AnotherHugeTable aht ON aht.ID = ht.ColN
WHERE ColX IS NOT NULL

COMMIT TRAN

1回の取引で大丈夫でしょうか?この状況であなたならどうしますか?

4

1 に答える 1

4

それは、実行している状況とビジネス要件によって異なります。

トランザクション ログが巨大になる可能性が高いことに注意してください (TLog をバックアップする頻度はどれくらいですか?)

可能であれば、たとえば 10,000 (または 100,000) のバッチに分割します。

文字通り数十億行のテーブルがある場合は、テーブルのパーティション分割を調査する必要があります (Enterprise バージョンの SQL Server が必要です)。

于 2012-05-11T04:59:07.663 に答える