比較的簡単なSQL更新文をいくつか実行して、Oracle表の1列を1440万行に更新する必要があります。 1つのステートメントはJavaで書かれた関数を実行し、私は1440万行すべての更新を行っているのでJVMはメモリ不足になります。Oracleの更新文をバッチ・モードで実行する
この単純な更新を、バッチごとに、たとえば10Kレコードのセットに分割することができる一種のバッチPL/SQLルーチンを作成しましたか?私はレコードの束の後に私の更新をコミットすることができれば、それはより速く行くだろうと私は記憶を使い果たしていないことを知っている。私はFOR loop
とrow_num
を使ってこれを行う簡単な方法があると確信していますが、それほど進歩はありません。への最初の選択を行います
update vr_location set usps_address = mylib.usaddress_utils.parse_address(usps_address);
我々はvr_locationの列を見ることができれば、我々は何かを提案することができるかもしれません。 –
VR_LOCATIONの列には、zip_coテーブルがあるFKであるzip_co列が含まれています。私はstiliのアドバイスを取って、これを使ってデータのサブセットを得るつもりです。 1つのセット・ベースのステートメントですべてを実行しようとすると、クラッシュすることなく一度に20〜30Kの行を処理するJVMを取得することについてはそれほど重要ではありません。 – Dylan