私は設計上の問題があります。私は更新する必要がある何百万ものレコードを持つデータベースを持っています。JDBC Oracleデータベースの数百万のレコードを更新します
新しいフィールド値を計算するために何らかの処理を行う必要があるため、JDBCを使用します。
もう一度やり直してもらえません。だから私は単純なことを考えていた。私は新しいテーブルを作成して古いものを削除したいと思っていましたが、DBAは望んでいません。ストレージの必要性が大きいからです。
私は約80百万行を処理し、各行は3フィールドを更新する必要があります。
たとえば、setFetchSize(1000)を使用した単純なjdbcアプローチが有効でしょうか?
私は、更新のためにmutableからa、b、cを選択することを意味します。 その後の更新...
JDBCプログラムは作業負荷をサポートできますか?
また、SpringBatchまたはEasyBatchの使用についても考えていました。しかし、私はそれがちょうど1つのゴー(そしていくつかの非常に短いタイムライン)のためにこれで時間を調べる価値があるかどうか疑問に思っています。
これはあなたの経験ですか?
は、データベースに含まれるすべての更新を行うために必要な情報ですか? (数式が使用されています)、または処理が完了しなければならないと言ったときには、更新に必要な情報の一部がローカルなのですからですか? – xQbert
こんにちは。更新情報はデータベースに含まれていません。私は、データ行を読み取って、計算された値を取得するために外部サービスを呼び出して、計算された値で行の3フィールドを更新する必要があります。 – Gilles
@ Gillesこれはどれくらいの時間を必要としますか?あなたはjavaと各行に対してデータを取り込み、外部サービスを呼び出してデータベースを更新します。これを行ごとに10ミリ秒で行うことができますか、私はあなたができるとは思っていませんが、プロセスを完了するのにまだ9.25日かかります。それをそこから拡張する。行ごとに100msかかる場合は、今は92.5日です。それがこのように行われなければならない場合は、あなたが何を得るかを知ることが最善です。 – unleashed