物化檢視妙用__表同步使用物化檢視方法

lusklusklusk發表於2017-09-01
物化檢視建立後,會自動建立一張和物化檢視同名的表,會在dba_objects中出現兩個物件,OBJECT_TYPE分別是TABLE、MATERIALIZED VIEW。user_mviews、user_tables中都會出現這個物件
物化檢視佔用空間,空間大小和base table一樣大,但是在user_segments.segment_type顯示的值是table而不是MATERIALIZED VIEW

PRESERVE TABLE Clause
This clause lets you retain the materialized view container table and its contents after the materialized view object is dropped. The resulting table has the same name as the dropped materialized view.
保留表條款
此子句允許在物理化檢視物件被刪除後,保留物化檢視容器表及其內容。 生成的表與刪除的例項化檢視具有相同的名稱。

所以可以使用物化檢視進行表同步,對要同步的表建立增量重新整理的物化檢視,每天定時同步,如果到了切換物化檢視為表的時候,只需要最後手工DBMS_MVIEW.REFRESH重新整理一下最後的一點點資料再drop materialized view MV_name PRESERVE TABLE即實現了表的同步


drop materialized view MV_jobs PRESERVE TABLE後,USER_MVIEWS不見了MV_jobs,但是user_tables、dba_objects、dba_segments還有MV_jobs,select * from MV_jobs不會報錯
drop materialized view MV_jobs後USER_MVIEWS、user_tables、dba_objects、dba_segments都不見了MV_jobs,select * from MV_jobs不會報錯


conn hr/hr
create materialized view MV_jobs refresh complete on demand as select * from jobs;
drop materialized view MV_jobs PRESERVE TABLE;
select * from MV_jobs;--有結果

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2144399/,如需轉載,請註明出處,否則將追究法律責任。

相關文章