[Oracle][メモ] Materialized View

忘れん内に作り方のメモ。でも色々忘れている。

権限の付与

Materialized Viewを作るには Create Materialized View の権限が必要なので付与。

  % sqlplus /nolog
  SQL> conn hoge/pass@mydb as sysdba;
  SQL> grant create materialized view to hoge;

Materialized View Log の作成

Fast同期させたいときはMaterialized Viewログを作る必要がある。

  SQL> create materialized view log on mytable with rowid;

ここでは、mytable用のログを作成した。このテーブルに対してInsertやUpdateが発生するとrowidと変更メソッドの種類などが記録される。同期時にこの情報が使われるみたい。

Materialized View の作成

  SQL> create materialized view vw_mytable
             refresh fast start with sysdate next sysdate + 1/1440*30 
             with rowid
             as
               select t.rowid, t.* from mytable t where t.age > 3;

リモートのDBにあるテーブルのMaterialized Viewを作る時はDBリンクを使う。

  SQL> create materialized view vw_mytable
             refresh fast start with sysdate next sysdate + 1/1440*30 
             with rowid
             as
               select t.rowid, t.* from mytable@remote t where t.age > 3;