CREATE MATERIALIZED VIEW介紹

何謂CREATE MATERIALIZED VIEW
  • 建立實體化檢視,表格查詢情境中參照頻率較高,比一般檢視具有較高的效能,透過子查詢新增資料到實體化檢視,假如主表格被移除,實體化檢視的資料仍然存在,可以進行正常查詢操作
格式
CREATE MATERIALIZED VIEW mview_name
     [BUILD {IMMEDIATE | DEFERRED}]
     [REFRESH {COMPLETE | FAST | FORCE}] [ON {COMMIT | DEMAND}]
     [FOR UPDATE]
     [{ENABLE | DISABLE} QUERY REWRITE]
AS SELECT select_statement;
mview_name : 實體化檢視名稱
BUILD IMMEDIATE : 透過子查詢所新增的資料,立即交易
BUILD  DEFERRED : 透過子查詢所新增的資料,延遲交易
REFRESH  COMPLETE : 完全更新實體化檢視資料,當主表格資料做更新
REFRESH  FAST : 遞增更新,當主表格資料更新時,只反映更新部分的資料,注意必須要建立實體化檢視日誌,才可使用這項功能
REFRESH  FORCE : 先以FAST進行更新,無法進行再以COMPLETE進行更新,此為預設值
ON COMMIT : 自動更新,當主表格交易結束
ON DEMAND : 手動更新,必須搭配DBMS_MVIEW包裝的REFERSH程序使用進行更新,此為預設值
FOR UPDATE : 可對實體化檢視操作DML語法
ENABLE  QUERY REWRITE : 使用查詢覆寫
DISABLE  QUERY REWRITE : 關閉查詢覆寫
select_statement : 子查詢
使用方式
  • SQL語法示範
說明 : 建立實體化檢視,名稱為emp_view,透過emp表格做資料新增,並可以使用查詢覆寫,所使用的交易型態為立即交易
 create materialized view emp_view
     build immediate
     refresh complete
     enable query rewrite
 as select * from emp;