ホームページ > バックエンド開発 > C++ > 数百万行を SQL Server に効率的に挿入するにはどうすればよいですか?

数百万行を SQL Server に効率的に挿入するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-21 14:56:10
オリジナル
236 人が閲覧しました

How Can I Efficiently Insert Millions of Rows into SQL Server?

大量のデータを SQL Server に効率的にインポート: 大規模データ セットの処理戦略

大規模なデータ セットを SQL Server にインポートするには、処理時間を最小限に抑えるための効率的なテクニックが必要です。この記事では、数百万行のデータを SQL Server に迅速に挿入するためのさまざまな方法を説明します。

1. バッチ挿入操作には SqlBulkCopy を使用します

SqlBulkCopy クラスは、高性能のバッチ データ挿入メカニズムを提供します。内部トランザクション管理とテーブル ロックを活用してプロセスを最適化します。この方法を使用すると、従来の INSERT ステートメントと比較して、大規模なデータ セットの挿入速度が大幅に向上します。

コード例:

<code class="language-c#">using (SqlConnection connection = new SqlConnection(connString))
{
    SqlBulkCopy bulkCopy = new SqlBulkCopy(
        connection, 
        SqlBulkCopyOptions.TableLock | 
        SqlBulkCopyOptions.FireTriggers | 
        SqlBulkCopyOptions.UseInternalTransaction,
        null
        );

    bulkCopy.DestinationTableName = this.tableName;
    connection.Open();
    bulkCopy.WriteToServer(dataTable);
    connection.Close();
}</code>
ログイン後にコピー

2. バッチ挿入に XML 変換を使用します

あるいは、XML 変換を利用して一括挿入を行うこともできます。このメソッドには、DataTable から XML 形式へのデータの変換が含まれます。 XML が作成されると、それをデータベースに渡し、SQL Server OpenXML 関数を使用して一括挿入できます。

3. メモリ消費に関する考慮事項

大規模なデータセットを処理するときは、メモリの消費に注意してください。 200 万件のレコードをメモリにロードすると、システムのリソースに負担がかかる可能性があります。この状況を軽減するには、データを段階的に処理するか、テーブル パーティショニングなどの他の手法を検討することをお勧めします。

これらの戦略を適用すると、大規模なデータ セットの SQL Server への挿入プロセスが簡素化され、効率的なデータ管理とパフォーマンスの最適化が保証されます。

以上が数百万行を SQL Server に効率的に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート