.NET を使用した Oracle での一括挿入の最適化
大規模なデータセットを扱う場合、従来の行ごとの挿入では時間がかかることがあります。 .NET を使用して Oracle に効率的に一括挿入するには、次の方法を検討してください。
Oracle Data Provider for .NET (ODP.NET) による配列バインディング
ODP.NET は、大幅な配列バインディング機能を提供します。一括挿入のパフォーマンスが向上します。その仕組みは次のとおりです:
-
ストアド プロシージャを定義します: 挿入するデータにマップするパラメーターを使用してストアド プロシージャを作成します。たとえば、Name、Age、Address 列を持つ Student テーブルの場合、InsertStudent(IN Name VARCHAR2, IN Age INTEGER, IN Address VARCHAR2) のようなプロシージャを定義できます。
-
パラメータ配列の準備: .NET コードでパラメーター値の配列を準備します。各配列は、ストアド プロシージャ パラメータの 1 つ (例: NameArray、AgeArray、AddressArray) に対応する必要があります。
-
Create OracleCommand: ストアド プロシージャを参照し、パラメータ配列をバインドする OracleCommand オブジェクトを作成します。これを行うには、ArrayBindCount プロパティを使用して、各パラメーター配列にバインドするデータの行数を指定します。
-
コマンドの実行: OracleCommand を実行して一括挿入を実行します。
この方法では、Oracle の一括処理機能を活用し、ネットワーク呼び出しを削減し、スループットを向上させます。これは、大規模なデータセットを効率的にインポートするための非常に効果的なソリューションです。
パフォーマンスの比較
160K レコードを挿入する必要がある提供されたシナリオでは、ODP.NET との配列バインディングにより処理時間を大幅に短縮できます。ユーザーは、行ごとの挿入を使用した場合、当初の 25 分と比較して、50,000 レコードの挿入時間が 15 秒に短縮されたと報告しています。この大幅な高速化は、この最適化手法の利点を際立たせています。
以上が大規模なデータセットの .NET から Oracle への一括挿入を最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。