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;

DROP INDEX介紹

何謂DROP INDEX
  • 刪除索引
格式
DROP INDEX [schema.]index_name;
schema : 架構名稱
index_name : 索引名稱
使用方式
  • SQL語法示範
說明 : 刪除hr使用者的索引,名稱為app
drop index hr.app;

ALTER INDEX介紹

何謂ALTER INDEX
  • 針對索引的架構做修改,此處說明索引常用的變更方式,分別為索引重建與變更索引名稱
為何要索引重建
  • 這項操作不是新增索引,而是針對索引架構內的內容做更新,因為索引所記錄的資料塊位置被變動,所以索引才需要從新指向資料塊位置
格式
ALTER INDEX [schema.]index_name
     {REBUILD | RENAME TO new_index_name};
使用方式
  •  SQL語法示範
說明 : 重建索引架構,索引名稱為app
alter index app rebuild;
說明 :變更索引名稱app為app2 
alter index app rename to app2;