電子書籍の厳選無料作品が豊富!

現在、バッチ処理にて毎日、
まずテーブルを空にして、
そのあとインサートを行う作業をしています。
しかし、余りにもインサートに時間がかかってしまい困っています。
(2000万レコード程)

何か方法を探しているとヒント句の/*+ APPEND */を使用する
ダイレクトロードインサートというものを知りました。

大量のデータインサートのケースには従来のインサートよりも
処理速度が向上できるのではと感じました。

ただし、注意点が何点かあり、表領域の使用効率が悪いという所が気になっています。
毎日DELETE、もしくはTRUNCATEを行えば問題ないのでしょうか?
また、ダイレクトインサートを使用する上で懸念すべき点が他にあれば
ご教授お願い致します。

A 回答 (2件)

>毎日DELETE、もしくはTRUNCATEを行えば問題ないのでしょうか?


deleteでなくtruncateでないとダメ。
ダイレクトインサートは、空の表にロードするなら、最高のパフォーマンスを発揮します。
データの存在する表への追加ロードの場合は、索引の構築時間の関係で、
従来型インサート方が効率が良い場合がありますけどね。
    • good
    • 1

バッチ処理ということで気になったので……


APPENDヒントは単一行INSERT(INSERT INTO ... VALUES ...)の場合、
無視されるので注意してくださいね。
INSERT INTO ... SELECT ... の形で使用することになります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す