0

Oracle の具体化されたビューについて質問があります ...

2 つのデータベースがあります。

  1. コア データベース
  2. レポート データベース

レポート データベースには次のものがあります。

  • Core データベースへのデータベース リンク
  • コア データベース内のテーブルのシノニムの数
  • これらのシノニムの上に定義された多数の具体化されたビュー。

ビューは 1 時間ごとに更新されるように設定されています。

ソース システムのデータ ボリュームの増加に伴い、ビューを具体化するための CPU の増加が見られます。

よく調べてみると、ビューの更新プロセスがレポート データベース内に結果セットを構築し、個々の小さな SQL ステートメントをコア データベースに送信しているように見えます。

これらのマテリアライズド ビューの一部は非常に複雑で、テーブル間の結合が多数あります。これにより、Core データベースに対して何百万もの小さな SQL ステートメントが発生します。

私の質問は次のとおりです。対応する「複雑な」ビューをコア データベースに作成し、レポート データベースにマテリアライズド ビューを単純な「SELECT * FROM CORE.MY_MAT_VIEW」として作成する方がよいでしょうか。

ポインタをありがとう、

乾杯、エヴァン

4

2 に答える 2

4

Core データベースには複雑すぎるものはありません。コア データベースにより多くの負荷をかけ、さらに多くのデータをドラッグする可能性があります。

レプリケートされたテーブルに対して作成された MV を使用して、Core テーブルをレポート環境にレプリケートすること (単純なレプリケーション) を検討しましたか。コアに対する SQL はより単純であり、コアからレポートまでのデータ量は少なくなり、複雑な MV は単一のデータベースで管理されます。

于 2009-07-16T05:18:13.440 に答える
0

あなたの言うようにトランザクション レートが良くない場合は、リフレッシュ レートを下げることを検討します。多くのレポート システムでは、レポート サービスに 24 時間のターンアラウンド タイムが使用されており、通常はユーザーが調整できます。1 時間から 24 時間の間のリフレッシュ レートを使用すると、大幅な改善が見られる場合もあります。

于 2010-07-19T20:10:40.217 に答える