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

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

Barbara Streisand
Barbara Streisandオリジナル
2025-01-21 14:46:11161ブラウズ

How Can I Efficiently Insert 2 Million Rows into SQL Server?

200 万行のデータを SQL Server データベースに効率的にバッチ挿入します

大量のデータを SQL Server データベースに挿入する場合、挿入プロセスを最適化することが重要です。この記事では、200万行のデータを効率的に挿入する最適な方法を包括的に紹介します。

SqlBulkCopy を使用する

SqlBulkCopy クラスは一括挿入に最適です。データを .NET DataTable または IEnumerable から直接 SQL Server テーブルに迅速に転送します。データ指向の操作を活用することで、従来の行ごとの挿入をバイパスし、処理時間を大幅に短縮します。

実装手順

SqlBulkCopy を効果的に使用するには、次の手順に従います。

  1. SQL Server への接続を確立します。
  2. ターゲット テーブル名と必要なオプション (トリガーなど) を指定して、SqlBulkCopy インスタンスを作成します。
  3. 接続を開きます。
  4. データを転送するには WriteToServer() メソッドを使用します。
  5. 接続を閉じます。

以下は C# の例です:

<code class="language-csharp">using (SqlConnection connection = new SqlConnection(connString))
{
    SqlBulkCopy bulkCopy = new SqlBulkCopy(connection, SqlBulkCopyOptions.TableLock | SqlBulkCopyOptions.FireTriggers, null);
    bulkCopy.DestinationTableName = tableName;
    connection.Open();
    bulkCopy.WriteToServer(dataTable);
    connection.Close();
}</code>

その他の方法

データセットがテキスト ファイルに保存されている場合は、それを DataSet に読み取り、OpenXML 機能を使用して XML に変換することを検討してください。この XML は、一括挿入のためにデータベースに渡すことができます。ただし、このアプローチでは、特に大規模なデータ セットの場合、大量のメモリ リソースが必要になる可能性があります。

メモリに関する考慮事項

200 万行のデータをロードおよび挿入すると、システムのメモリに負荷がかかる可能性があることに注意してください。必要に応じて、十分なメモリ容量を持つサーバーの使用を検討するか、データ ストリーミングや増分挿入などの他のソリューションを検討してください。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。