物化視圖(實體化視圖)是包括一個查詢結果的數據庫對象,它是遠程
數據的的本地副本,或者用來生成基于數據表求和的匯總表。物化視圖存儲基于遠程表的數據,也可以稱為快照。
所以物化視圖和視圖的最大區別是,物化視圖在本地保存數據,而視圖只是一些SQL語句而已。視圖的好處是簡化使用過程,物化視圖的好處提高性能,當然也可以簡化使用過程。提高查詢速度的代價就是放棄一定的數據實時性。
物化視圖可以查詢表,視圖和其它的物化視圖。
創建物化視圖,應先在對于的基礎表上創建存儲的日志空間:
create materialized view log on tablex
tablespace mytestspace -- 日志空間
with rowid;
然后再創建物化視圖:
create materialized vew myfirstmv
on prebuild tabley -- 將物化視圖建立在一個已經存在的表上,也可不加這句
tablespace mytestspace
build deffered -- buld clause子句,deffered表示創建時不生成數據,默認為build immediate
refresh fast -- refresh 子句。fast表示只刷新上次刷新之后所作的修改。相對為complete。默認為force
on commit -- 對基表的DML操作提交的同時進行刷新。默認為on demand
start with to_date('2008-08-08 20:00:00', 'yyyy-mm-dd hh24:mi:ss') --第一次刷新時間
next TRUNC(SYSDATE+1)+18/24 --刷新時間間隔。每兩天刷新一次,時間為下午6點
as
select x1, x2, x3 from tablex
刪除時,刪除物化視圖和物化視圖日志無順序要求,不過先刪除日志,會使刪除物化視圖的速度加快很多。
如果物化視圖日志存在的話,物化視圖在刪除的時候,需要將物化視圖日志中所有當前物化視圖需要刷新的記錄刪除掉。這意味著一個DDL的語句中包含著DML的部分。
以上都沒經過實際操作,以后有時間再說
http://xznsoft.javaeye.com/blog/124000
posted on 2008-08-09 15:53
EvanLiu 閱讀(1893)
評論(0) 編輯 收藏 所屬分類:
DB