高機復制就是物化視圖
物化視圖是包括一個查詢結果的數據庫對像
物化視圖可以查詢表
通常情況下
對於復制
對於數據倉庫
本篇我們將會看到怎樣創建物化視圖並且討論它的刷新選項
在復制環境下
下面的語法在遠程數據庫表emp上創建主鍵物化視圖
SQL> CREATE MATERIALIZED VIEW mv_emp_pk
REFRESH FAST START WITH SYSDATE
NEXT SYSDATE +
WITH PRIMARY KEY
AS SELECT * FROM emp@remote_db;
Materialized view created
注意
SQL> CREATE MATERIALIZED VIEW LOG ON emp;
Materialized view log created
下面的語法在遠程數據庫表emp上創建Rowid物化視圖
SQL> CREATE MATERIALIZED VIEW mv_emp_rowid
REFRESH WITH ROWID
AS SELECT * FROM emp@remote_db;
Materialized view log created
下面的語法在遠程數據庫表emp上創建基於emp和dept表的子查詢物化視圖
SQL> CREATE MATERIALIZED VIEW mv_empdept
AS SELECT * FROM emp@remote_db e
WHERE EXISTS
(SELECT * FROM dept@remote_db d
WHERE e
Materialized view log created
REFRESH 子句
[refresh [fast|complete|force]
[on demand | commit]
[start with date] [next date]
[with {primary key|rowid}]]
Refresh選項說明:
a
b
c
Refresh方法
增量刷新用物化視圖日志(參照上面所述)來發送主表已經修改的數據行到物化視圖中
SQL> CREATE MATERIALIZED VIEW LOG ON emp;
Materialized view log created
對於增量刷新選項
Refresh方法
完全刷新重新生成整個視圖
Refresh Method – FORCE 子句
當指定FORCE子句
主鍵和ROWD子句
WITH PRIMARY KEY選項生成主鍵物化視圖
主鍵物化視圖允許識別物化視圖主表而不影響物化視圖增量刷新的可用性
Rowid物化視圖只有一個單一的主表
n Distinct 或者聚合函數
n Group by
刷新時間
START WITH子句通知數據庫完成從主表到本地表第一次復制的時間
SQL> CREATE MATERIALIZED VIEW mv_emp_pk
REFRESH FAST
START WITH SYSDATE
NEXT SYSDATE +
WITH PRIMARY KEY
AS SELECT * FROM emp@remote_db;
Materialized view created
在上面的例子中
總結
物化視圖提供了可伸縮的基於主鍵或ROWID的視圖
From:http://tw.wingwit.com/Article/program/Oracle/201311/18127.html