CREATE MATERIALIZED VIEW LOG介紹

語法說明

  • 建立實體化檢視日誌,須進行實體化檢視高速復新就必須建立實體化檢視日誌
  • 實體化檢視日誌物件稱為MLOG$_table_name的表格,來源表格資料更新時,變更資訊會存放此表格,高速復新時,以變更資訊為來源,實體化檢視只會反映出變更差異
格式
CREATE MATERIALIZED VIEW LOG ON [schema.]table_name
[WITH with_clause] [{INCLUDING | EXCLUDING} NEW VALUES];
 schema : 結構名稱
 table_name : 物件名稱
 with_clause : 指定要描述的資訊
with_clause子句說明

  • WITH子句可在實體化檢視日誌指定要描述資訊,可指定項目包括物件ID,主鍵,ROWID,
序列,表格欄位等,省略WITH子句,預設描述主鍵
 with_clause格式
{OBJECT ID | PRIMARY KEY | ROWID | SEQUENCE | (column [,column...])
  [,OBJECT ID | PRIMARY KEY | ROWID | SEQUENCE | (column [,column...]) ... ] } 
 column : 對於更新全列指定要記錄在實體化檢視日誌的欄位
 OBJECT ID : 記錄對於更新全列的物件識別符,建立物件表格日誌時可以指定
 PRIMARY KEY : 記錄更新全列主鍵
 ROWID : 記錄更新全列ROWID
 SEQUENCE : 紀錄表示附加序列資訊的序列值,進行高速復新時,必須要在實體化檢視日誌裡記錄此值 
 NEW VALUES子句說明

  • NEW VALUES子句可指定更新前後的資訊處理方法
  • NEW VALUES子句指定值
  1. INCLUDING : 記錄更新前後資訊,此為預設值
  2. EXCLUDING : 只記錄更新前的資訊
 語法示範
說明 : 建立實體化檢視日誌
create materialized view log on emp;
說明 : 建立實體化檢視日誌,加入描述 
create materialized view log on emp
  with sequence,rowid(ename,salary)
  including new values;

DROP MATERIALIZED VIEW介紹

語法說明
刪除MATERIALIZED VIEW物件
格式
DROP MATERIALIZED [schema.]mview_name [PRESERVE TABLE];
 schema : 結構名稱
 mview_name : 物件名稱
語法示範
說明 : 刪除mview_emp物件
drop materialized view mview_emp;

CREATE MATERIALIZED VIEW介紹

語法使用說明

  • 針對 MATERIALIZED VIEW物件做設定,可設定項目如下:
  1. 復新類型
  2. 復新模式
  3. 依據重新編譯所做的變更
  4. 設定是否使用查詢覆寫 
  5. 根據CONSIDER FRESH子句所做的變更
  6.  分割的維護操作
格式
ALTER MATERIALIZED VIEW [schema.]mview_name
{REFRESH alter_mv_refresh | {ENABLE | DISABLE } QUERY REWRITE | COMPILE};
 schema : 結構名稱
 mview_name : 物件名稱
 alter_mv_refresh : 復新類型和復新模式
設定查詢覆寫所需權限

  • 實體化檢視內所有實體表格都在內部結構內(狀況) : QUERY REWRITE 權限
  • 實體化檢視的任一實體表格在外部結構內(狀況) : GLOBAL QUERY REWRITE 權限
  • 實體化檢視在別的使用者的結構內(狀況) : 使用者與該結構擁有者兩方需有QUERY REWRITE 權限
語法示範
說明 : 重新編譯實體化檢視mv_emp
alter materialized view mv_emp compile;
說明 : 指定REFRESH子句可變更實體化檢視所設定的復新類型和復新模式
alter materialized view mv_emp refresh fast;