5

Oracle DBの特定のテーブルが更新されるたびに(レコードの追加、削除、変更など、あらゆる種類の更新)、Javaでメソッドを実行する必要があります。

パフォーマンスが高く、DBに過度のプレッシャーをかけない、Javaからの変更についてテーブルを「ポーリング」する最も効率的な方法は何ですか。

残念ながら、私には多くの制約があります。

  • DBの管理/設計を制御できないため、追加のテーブル、トリガー、ストアドプロシージャなどを作成できません。
  • その投稿で提案されているように、C / JNIが関係しているように見えるため、Oracle変更通知は避けたいと思います。
  • レコードを数えるだけでは、変更や同時の追加/削除を見逃す可能性があるため、十分ではありません。
  • 実際の変更から通知までの最大30/60秒の遅延は許容されます。
  • 私が監視したいテーブルには、通常10万以上のレコード(約1m以上)があるため、テーブル全体をプルすることはオプションではないと思います(DBの負荷/パフォーマンスの観点から)。
4

1 に答える 1

5

Oracle 11g 以降では、プレーンな JDBC ドライバーリンクで Oracle Change Notification を使用できます。

于 2012-05-29T12:09:32.403 に答える