アプリ版:「スタンプのみでお礼する」機能のリリースについて

ともに同じテーブル構造、同じプライマリーキー制約のテーブル間で、
Inset into Aテーブル(a,b,c)
Select a,b,c from Bテーブル
という処理を行っているのですが、
処理時間が半端でないほど異常にかかります。

Aテーブルのレコードは空、
Bテーブルのレコードは500万件ぐらいあります。

ともにプライマリー規制約のみで、indexはありません。

レコード数が多いため、
Aテーブルにインサートする時に、索引を作成するのに
時間がかかっているのかと思うのですが、
そんなに時間がかかるものなのでしょうか?

どなたかご回答お願いします。

A 回答 (3件)

質問に書かれている要素であれば・・



ダイレクトパスインサートで良いんじゃないですかね。

insert /*+ APPEND */ into A(a,b,c) select a,b,c from B;
    • good
    • 0

テーブル構造が同じなら


create table a_table as select * from b_table。
あとはいんでっくすでもなんでも自由につけて。
    • good
    • 0

同じテーブル構造であるなら、


表全体をコピーして新表を作成し、
その後索引をはってはいかがでしょうか?

一時的に索引を無効にしてロードする方法もありますし。

どちらにしても索引のREBUILDには時間を取られてしまいますが。
    • good
    • 0

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

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