私のC#.NETアプリケーションは、OracleBulkCopyを使用して数百万のレコードを一時テーブルに書き込みます。アプリケーションに20000レコード以上のメモリーがあるたびに、OracleBulkCopyを呼び出してすべてを1回のバッチで書き込みます(バッチ・サイズ= 0を使用しています)。最初はテーブルが空で、バッチ全体を書き込むのにわずか2秒かかります。処理中、バッチを書く時間が増加する。レコードが2.000.000になると、各呼び出しにはほぼ25秒かかります。 OracleBulkCopyのデフォルト・オプションを使用しています。テーブルが40.000.000に達したときにいくつかのテストを行うと、20,000レコードを書き込むのに3分ほどかかります。OracleBulkCopyのパフォーマンス
各コールでほぼ一定の時間を維持するために推奨事項があるかどうかを知りたい(私はそれについて何も見つかりませんでした)かどうかを知りたいと思います。私は間違って何かしていますか?
このテーブルにいくつかの挿入トリガーがありますか? – Nate
いいえ、何もありません。主キーでもありません。ロギングを行わないようにテーブルが設定されています。 –
"temp"テーブルは正確に何を意味しますか?グローバル一時テーブル? – DCookie