1

私は Web を検索してきましたが、どこでも同じ例を見て驚いており、常に all_objects です。高度な SQL が得意ではないため、このステートメントを変換して BULK_COLLECT を使用する方法がわかりません。

INSERT INTO bpm_staging ( 
    id, pay_obj, merchant, address,
    city, country,debit_num, first_name,
    state, zip, id_type,bank_no)
  SELECT 
    p.account_obj, p.id, p.ach, pc.address,
    pc.city, pc.country, pc.debit_num, pc.name,
    pc.state, pc.zip, p.id_type,pc.bank_no
  FROM au_pay_t p, au_pay_dd_t pc 
  WHERE p.id= pc.obj;

カーソルを使用すると時間がかかるため、上記のステートメントを使用しました。また、選択を使用すると、クエリを変更する必要がある人にとって理解しやすくなります。

しかし、私の DBA は、行ごとに 540K レコードを挿入するには時間がかかるため、本番環境での実行を拒否しました。

Web を検索すると、パフォーマンスに関する限り、BULK_COLLECT /FORALL の方が優れたオプションであることがわかりました。

より良い回避策を提案してください。BULK_COLLECT が適切なオプションである場合は、この種の適切な例を提案してください。

4

2 に答える 2

0
insert /*+ append */ into

高速化することもあります。

于 2013-11-01T13:54:01.550 に答える