0

マテリアライズド ビューの概念を長い間理解しようとしてきましたが、別のサーバーのテーブルの物理テーブル (レプリカ) であることを除いて、正確な機能を得ることができませんでした。

私は次のことを試しました

CREATE MATERIALIZED VIEW TEMP_MV
BUILD DEFERRED
REFRESH COMPLETE
ON DEMAND
AS
SELECT C1,C2,C3 FROM TAB;

ここでBUILD DEFERREDは、後でベース テーブルの構造のみを取得するために使用しました。REFRESH を使用してレコードを取得できますが、REFRESH を実行するにはどうすればよいですか

レコードが表示されるように試してみBUILD IMMEDIATEましたが、ベーステーブルに新しいレコードを挿入した場合、MV でそれらの新しいレコードを取得できません。

CREATE MATERIALIZED VIEW TEMP_MV
BUILD IMMEDIATE
REFRESH COMPLETE
ON DEMAND
FOR UPDATE
AS
SELECT C1,C2,C3 FROM TAB;

ORACLE 10G を使用しています。MVをよりよく理解するのを手伝ってください。

ありがとう

4

2 に答える 2

2

マテリアライズド ビューの定義でスケジュールを指定せず、マテリアライズド ビューがコミット時に更新するように定義されていない場合DBMS_MVIEW.REFRESHは、マテリアライズド ビューのデータを更新するために呼び出す必要があります。それがREFRESH COMPLETE ON DEMAND参照する「要求」です-マテリアライズドビューを更新するタイミングを伝える必要があります。

于 2012-07-23T20:23:07.327 に答える