1

スケジュールされた時刻にレポートを実行する必要があります。アプリケーションは 24 時間年中無休で実行されるため、「オフピーク」時間はありません。

したがって、レポートを実行しても、システムに過度の負荷がかかることはありません。

アプリケーションは WebSphere v6.1 で実行され、データベースは Oracle 10g R2 です。

私は自由に次のアプローチを持っています

  1. レポート用の非正規化テーブルのセット。
  2. マテリアライズド ビューを作成し、レポートに使用する。ビューは 1 日 1 回更新できます。
  3. 別のスキーマを作成し、Oracle の Data Guard を使用してテーブルをリアルタイムで複製できます。

(1) は、私たちが持っている特定の内部制約のために実現不可能です。

パフォーマンスの観点から、(2) と (3) のどちらが優れているかを知る必要があります。

マテリアライズド ビューは最初はうまく機能するが、データ量が増えるとパフォーマンスが非常に低下するという話を多くの人から聞いています。

誰でも、同じ DB サーバー内のテーブルのレプリケーションの経験があります (ただし、インスタンスまたはスキーマの差分)。

4

2 に答える 2

1

最良のオプションは、別のマシンで別のData Guardインスタンス (スキーマではなく、意味がない) を使用することです。この場合、本番アプリケーションに影響を与えることなく、最新のデータベースを使用できます。

マテリアライズド ビューの使用については、更新によって多くのリソースが使用されない場合に適しています。また、マテリアライズド ビューに対するクエリも多くのリソースを浪費しない場合。

あなたが話していない3番目のオプションは、多くの可能性でリソースの使用を制御できるOracle Resource Managerを使用することです。

とにかく、「レポートデータベース」と「ライブバックアップ」を同時に持っているので、私は最初のもの(Data Guard)を好みます。

于 2009-07-15T10:52:20.907 に答える