oracle如何創(chuàng)建、刷新物化視圖

這篇文章將為大家詳細講解有關(guān)oracle如何創(chuàng)建、刷新物化視圖,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創(chuàng)新互聯(lián)專注于內(nèi)黃企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),電子商務(wù)商城網(wǎng)站建設(shè)。內(nèi)黃網(wǎng)站建設(shè)公司,為內(nèi)黃等地區(qū)提供建站服務(wù)。全流程定制設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

Create materialized view log on F_RPT_TASK WITH ROWID    -- 
 ----F_RPT_TASK為表名 ----注:(F_RPT_TASK為表名或者視圖名,關(guān)于視圖上建立物化視圖,見基于視圖的物化視圖 ----創(chuàng)建物化視圖語句:
 DROP materialized view log on  F_RPT_TASK

Create materialized view MV_F_RPT_TASK
 ----MVTEST為物化視圖名 
Build immediate ----創(chuàng)建時生成數(shù)據(jù)對應(yīng)的是build deferred 
Refresh fast ----增量刷新 
On commit ----在基表有更新時提交,這里該句對視圖無效
 With PRIMARY KEY ----這里創(chuàng)建基于primary key 的物化視圖,要與日志中對應(yīng)的是 primary key ;若日志為 rowid 則此處必須為rowid
 As 
 Select * from F_RPT_TASK  where RPT_PERIOD in (2012,2011) ----生成物化視圖數(shù)據(jù)語句



把物化視圖改為nologging模式

alter table MV_VECAM01_2YEARS nologging;

需要權(quán)限:GRANT CREATE MATERIALIZED VIEW,還必須直接賦予GRANT QUERY REWRITE. 

創(chuàng)建指定刷新試圖:

1.包含SYSDATE/ROWNUM或RAW/LONG RAW數(shù)據(jù)類型;無法建立On commit方式刷新。

建立時候去掉注釋。

Create materialized view log on tecam01 
TABLESPACE CISA_GXPORTAL  
WITH PRIMARY KEY  
 ----tecam01為表名 ----注:(tecam01為表名或者視圖名,關(guān)于視圖上建立物化視圖,見基于視圖的物化視圖 ----創(chuàng)建物化視圖語句: 
 /*刪除日志和視圖*/
 DROP materialized view log on  tecam01
 drop materialized view MV_vecam01_2years

 
 Create materialized view MV_vecam01_2years
 TABLESPACE CISA_GXPORTAL --保存表空間
 BUILD DEFERRED --延遲刷新不立即刷新
 refresh force --如果可以快速刷新則進行快速刷新,否則完全刷新
on demand --按照指定方式刷新
start with  to_date('07-12-2013 12:00:10', 'dd-mm-yyyy hh34:mi:ss')   /*第一次刷新時間*/
next  sysdate+5/(24*60)  --刷新時間間隔 5分鐘一次
-- next TRUNC(SYSDATE+1)+18/24 --刷新時間間隔 隔一天的18點開始
  As 
  SELECT * FROM tecam01  WHERE display_time >  to_char((sysdate- 730),'yyyyMMdd' )  ;

相關(guān)資料:

刷新(Refresh):指當(dāng)基表發(fā)生了DML操作后,物化視圖何時采用哪種方式和基表進行同步。刷新的模式有兩種:ON DEMAND和ON COMMIT。ON DEMAND指物化視圖在用戶需要的時候進行刷新,可以手工通過DBMS_MVIEW.REFRESH等方法來進行刷新,也可以通過JOB定時進行刷新。ON COMMIT指出物化視圖在對基表的DML操作提交的同時進行刷新。刷新的方法有四種:FAST、COMPLETE、FORCE和NEVE*。**ST刷新采用增量刷新,只刷新自上次刷新以后進行的修改。COMPLETE刷新對整個物化視圖進行完全的刷新。如果選擇FORCE方式,則Oracle在刷新時會去判斷是否可以進行快速刷新,如果可以則采用FAST方式,否則采用COMPLETE的方式。NEVER指物化視圖不進行任何刷新。默認值是FORCE ON DEMAND。

二、相關(guān)參數(shù)說明

創(chuàng)建物化視圖主要選項說明

創(chuàng)建物化視圖時可以指定多種選項,下面對幾種主要的選項進行簡單說明:

名稱 Build Clause 創(chuàng)建方式
描述 包括BUILD IMMEDIATE和BUILD DEFERRED兩種
取值 BUILD IMMEDIATE 在創(chuàng)建實體化視圖的時候就生成數(shù)據(jù)
BUILD DEFERRED 在創(chuàng)建時不生成數(shù)據(jù),以后根據(jù)需要在生成數(shù)據(jù)
默認 BUILD IMMEDIATE
名稱 Query Rewrite 查詢重寫
描述 包括ENABLE QUERY REWRITE和DISABLE QUERY REWRITE兩種。分別指出創(chuàng)建的實體化
視圖是否支持查詢重寫。查詢重寫是指當(dāng)對實體化視圖的基表進行查詢時,Oracle會自動判
斷能否通過查詢實體化視圖來得到結(jié)果,如果可以,則避免了聚集或連接操作,
而直接從已經(jīng)計算好的實體化視圖中讀取數(shù)據(jù)
取值 ENABLE QUERY REWRITE 支持查詢重寫
DISABLE QUERY REWRITE 不支持查詢重寫
默認 DISABLE QUERY REWRITE

創(chuàng)建實體化試圖日志主要選項說明

如果需要進行快速刷新,則需要建立實體化視圖日志。實體化視圖日志根據(jù)不同實體化
視圖的快速刷新的需要,可以建立為ROWID或PRIMARY KEY類型的。還可以選擇
是否包括SEQUENCE、INCLUDING NEW VALUES以及指定列的列表。

<table border="1" width="661"  font-size:16px;background-color:#ffffff;"="">

名稱 WITH Clause
描述  
取值 OBJECT ID 如果是對象實體化視圖(object materialized view),
則只能采用該方式
PRIMARY KEY  
ROWID  
SEQUENCE  
默認 PRIMARY KEY

三、舉例說明
 1、簡單示例

create materialized view MV_except_pattern_ordersrefresh 
Complete on demand     
 start with to_date('2010-11-06 13:20:51','YYYY-MM-DD HH24:MI:SS')
next sysdate+1/(24*60)
 as    select * from v_except_pattern_orders

2、帶日志物化視圖

--創(chuàng)建物化視圖日志
create materialized view log on table1tablespace ts_data --日志保存在特定的表空間
with rowid;--創(chuàng)建物化視圖主體
create materialized view MV_LVY_LEVYDETAILDATATABLESPACE ZGMV_DATA
--保存表空間
BUILD DEFERRED --延遲刷新不立即刷新
refresh force --如果可以快速刷新則進行快速刷新,否則完全刷新
on demand --按照指定方式刷新
start with to_date('24-11-2005 18:00:10', 'dd-mm-yyyy hh34:mi:ss') --第一次刷新時間
next TRUNC(SYSDATE+1)+18/24 --刷新時間間隔
as
as select * from table1;

上面這部分轉(zhuǎn)載自:

https://blog.csdn.net/dongcctv5/article/details/8614887


更新物化視圖的刷新方式:

ALTER MATERIALIZED VIEW  t_keyword_industry_sign
 REFRESH FORCE 
ON DEMAND
WITH  ROWID  
start with sysdate NEXT SYSDATE +30/24 

物化視圖的索引的創(chuàng)建:
create  index index_testid  on t_keyword_industry_sign(id);

索引的查詢:
select * FROM user_indexes t where t.table_name='NGCC_BEST.T_CONTRACT';

關(guān)于“oracle如何創(chuàng)建、刷新物化視圖”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

分享名稱:oracle如何創(chuàng)建、刷新物化視圖
轉(zhuǎn)載注明:http://muchs.cn/article2/pppoic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、靜態(tài)網(wǎng)站、網(wǎng)站策劃、企業(yè)網(wǎng)站制作、移動網(wǎng)站建設(shè)、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站