私は約800万の行を更新し、最良の方法を探しています。 私はすでに一括収集と更新を使用しようとしましたが、時間がかかります。 5000レコードごとにコミットします。 130分間。私はわずか0.25%の準備ができているので、別の方法で探しています。 テーブルの構造は数百万行を更新するときのOracleのパフォーマンス
CAMP_TASK NUMBER
CODE_SYSTEM VARCHAR2(10 CHAR)
ID_SOURCE VARCHAR2(40 CHAR)
ID_SOURCE_PARENT VARCHAR2(40 CHAR)
DATE_EFFECTIVE DATE
PROC_INSERTED NUMBER
PROC_UPDATED NUMBER
CAMP_TASK_PARENT NUMBER
であると私はid_source_parentがnullでない場合camp_task値でcamp_task_parent
フィールドを更新する必要があります。つまり、id_source_parentを持っている場合は、対応するcam_taskを見つけて、現在のローミングのためにcamp_task_parentを更新します。
ありがとうございます!あなたが回復 面積が不足しないように
1)は同じ構造
create table new_table as select * from old_table where 1=2;
2)そのテーブルのロギングを無効にして、新しい空のテーブルを作成するために、
あなたは本当に1つの大きなトランザクションでそれを行う必要がありますか? – BigMike
よく、私は毎月5000レコードをコミットしてください – MileP
、テーブルの定義を表示し、どの列を更新する必要がありますか、どこに条件がありますか? – Vecchiasignora