SQL*Loader を使用して、多数の CSV ファイルを Oracle データベースにプッシュしています。JAVA を使用して制御ファイルのコンテンツを作成するインテリジェンスを構築しています。理由は、データの性質上、取得する CSV ファイルごとに制御ファイルの内容が変化するためです。または、少なくとも制御ファイルを開いて、いくつかのチェックを実行する必要があります。ファイルの I/O 操作に関連する作成、開く、およびその他のコストを節約したい。制御ファイルの情報をメモリーに保持し、制御ファイルを指定するかわりにそのデータ構造をSQL*Loaderコマンドに提供したいと考えています。
1 に答える
0
SQL*Loader は、この仕事に適したツールではありません。繰り返し負荷用に設計されています。明らかに、それはあなたがしていることではありません。
「ファイルの I/O 操作に関連する作成、開く、およびその他のコストを節約したい。」
そして、この厄介なコストのベンチマークは... ????
とにかく、本当に毎回異なるファイル構造からロードしたい場合は、ファイル ヘッダーを読み取って、ファイルの残りのコンテンツをロードするための動的 SQL ステートメントを生成できるものが必要です。
個人的には、データベース サーバーにファイルを取得できれば、これには PL/SQL を優先的に使用することを選択します。クライアントからロードする必要がある場合は、おそらく Java プログラムが答えになるでしょう。ただし、ファイルのコンテンツをネットワーク経由で転送することは、実際の I/O コストのままです。このシナリオでは、適切なサーバーに配信することが最善の節約です。
于 2014-11-15T00:25:16.937 に答える