確かに。
通常のビューは、仮想テーブルを定義するクエリです。実際にはデータがテーブルに存在するのではなく、実行することでその場でデータを作成します。
マテリアライズドビューは、クエリが実行され、データが実際のテーブルに保存されるビューです。
マテリアライズド・ビューのデータは、指示すると更新されます。
いくつかのユースケース:
-
1つのインスタンスにマスターデータを置き、他のインスタンスにデータの適度に最新のコピーを置きたい複数のOracleインスタンスがあります。それらの間のデータベースリンクが常に稼働しているとは限りません。そのため、[email protected] 毎日リフレッシュするように伝えます。
-
マテリアライズドビューは、クエリの書き換えにも役立ちます。データウェアハウスにファクトテーブルがあり、図書館から借りたすべての本と、日付と借り手があるとします。そして、そのスタッフは定期的に本が何回借りられたか知りたいと思っています。次に、マテリアライズドビューを
select book_id, book_name, count(*) as borrowings from book_trans group by book_id, book_name
として作成します。 、必要な更新頻度に設定します。通常は、ウェアハウス自体の更新頻度です。ここで、誰かがbook_trans
に対して特定の本に対してそのようなクエリを実行した場合 表では、Oracleのクエリ書き換え機能は、book_trans
の数百万行をウォークスルーするのではなく、マテリアライズドビューを見るのに十分スマートです。 。
通常、パフォーマンスと安定性の理由でマテリアライズドビューを構築しています。つまり、ネットワークが不安定であるか、時間外に長いクエリを実行しています。