物化視圖的類型 RefreshForce是做什么的

普通視圖
【物化視圖的類型 RefreshForce是做什么的】普通視圖是虛擬表,不存儲任何數據,任何對視圖的查詢,Oracle都實際上轉換為視圖SQL語句的查詢 。這樣對整體查詢性能的提高,并沒有實質上的好處 。
物化視圖
物化視圖是一種特殊的物理表,會占用數據庫磁盤空間,具有表一樣的特征,可以像對表一樣為它創建索引,創建方法
物化視圖的類型
ON DEMAND
ON DEMAND顧名思義,僅在該物化視圖“需要”被刷新了,才進行刷新(REFRESH),即更新物化視圖,以保證和基表數據的一致性
ON COMMIT
ON COMMIT是說,一旦基表有了COMMIT,即事務提交,則立刻刷新,立刻更新物化視圖,使得數據和基表一致 。
四種刷新方式
FAST
采用增量刷新,只刷新自上次刷新以后進行的修改
COMPLETE
對整個物化視圖進行完全的刷新
FORCE
在刷新時去判斷是否可以進行快速刷新,如果可以則采用FAST方式,否則采用COMPLETE的方式
NEVER
不進行任何刷新
常用語句
— 創建物化視圖
create materialized view mv_name as select * from table_name
— 創建ON COMMIT物化視圖
create materialized view mv_name refresh force on commit as select * from table_name
— 指定物化視圖每天刷新一次
create materialized view mv_name refresh force on demand start with sysdate next sysdate+1
— 每天晚上10:00定時刷新一次
create materialized view mv_name refresh force on demand start with sysdate next to_date( concat( to_char( sysdate+1,’dd-mm-yyyy’),’ 22:00:00′),’dd-mm-yyyy hh24:mi:ss’)
— 刪除物化視圖
drop materialized view mv_name