這篇文章將為大家詳細(xì)講解有關(guān)oracle如何創(chuàng)建、刷新物化視圖,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(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è)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(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í)生成數(shù)據(jù)對應(yīng)的是build deferred
Refresh fast ----增量刷新
On commit ----在基表有更新時(shí)提交,這里該句對視圖無效
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方式刷新。
建立時(shí)候去掉注釋。
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 --如果可以快速刷新則進(jìn)行快速刷新,否則完全刷新
on demand --按照指定方式刷新
start with to_date('07-12-2013 12:00:10', 'dd-mm-yyyy hh34:mi:ss') /*第一次刷新時(shí)間*/
next sysdate+5/(24*60) --刷新時(shí)間間隔 5分鐘一次
-- next TRUNC(SYSDATE+1)+18/24 --刷新時(shí)間間隔 隔一天的18點(diǎn)開始
As
SELECT * FROM tecam01 WHERE display_time > to_char((sysdate- 730),'yyyyMMdd' ) ;
相關(guān)資料:
刷新(Refresh):指當(dāng)基表發(fā)生了DML操作后,物化視圖何時(shí)采用哪種方式和基表進(jìn)行同步。刷新的模式有兩種:ON DEMAND和ON COMMIT。ON DEMAND指物化視圖在用戶需要的時(shí)候進(jìn)行刷新,可以手工通過DBMS_MVIEW.REFRESH等方法來進(jìn)行刷新,也可以通過JOB定時(shí)進(jìn)行刷新。ON COMMIT指出物化視圖在對基表的DML操作提交的同時(shí)進(jìn)行刷新。刷新的方法有四種:FAST、COMPLETE、FORCE和NEVE*。**ST刷新采用增量刷新,只刷新自上次刷新以后進(jìn)行的修改。COMPLETE刷新對整個(gè)物化視圖進(jìn)行完全的刷新。如果選擇FORCE方式,則Oracle在刷新時(shí)會(huì)去判斷是否可以進(jìn)行快速刷新,如果可以則采用FAST方式,否則采用COMPLETE的方式。NEVER指物化視圖不進(jìn)行任何刷新。默認(rèn)值是FORCE ON DEMAND。
二、相關(guān)參數(shù)說明
創(chuàng)建物化視圖主要選項(xiàng)說明
創(chuàng)建物化視圖時(shí)可以指定多種選項(xiàng),下面對幾種主要的選項(xiàng)進(jìn)行簡單說明:
名稱 | Build Clause | 創(chuàng)建方式 |
描述 | 包括BUILD IMMEDIATE和BUILD DEFERRED兩種 | |
取值 | BUILD IMMEDIATE | 在創(chuàng)建實(shí)體化視圖的時(shí)候就生成數(shù)據(jù) |
BUILD DEFERRED | 在創(chuàng)建時(shí)不生成數(shù)據(jù),以后根據(jù)需要在生成數(shù)據(jù) | |
默認(rèn) | BUILD IMMEDIATE |
名稱 | Query Rewrite | 查詢重寫 |
描述 | 包括ENABLE QUERY REWRITE和DISABLE QUERY REWRITE兩種。分別指出創(chuàng)建的實(shí)體化 視圖是否支持查詢重寫。查詢重寫是指當(dāng)對實(shí)體化視圖的基表進(jìn)行查詢時(shí),Oracle會(huì)自動(dòng)判 斷能否通過查詢實(shí)體化視圖來得到結(jié)果,如果可以,則避免了聚集或連接操作, 而直接從已經(jīng)計(jì)算好的實(shí)體化視圖中讀取數(shù)據(jù) | |
取值 | ENABLE QUERY REWRITE | 支持查詢重寫 |
DISABLE QUERY REWRITE | 不支持查詢重寫 | |
默認(rèn) | DISABLE QUERY REWRITE |
創(chuàng)建實(shí)體化試圖日志主要選項(xiàng)說明
如果需要進(jìn)行快速刷新,則需要建立實(shí)體化視圖日志。實(shí)體化視圖日志根據(jù)不同實(shí)體化
視圖的快速刷新的需要,可以建立為ROWID或PRIMARY KEY類型的。還可以選擇
是否包括SEQUENCE、INCLUDING NEW VALUES以及指定列的列表。
<table border="1" width="661" font-size:16px;background-color:#ffffff;"="">
名稱 | WITH Clause | |
描述 | ||
取值 | OBJECT ID | 如果是對象實(shí)體化視圖(object materialized view), 則只能采用該方式 |
PRIMARY KEY | ||
ROWID | ||
SEQUENCE | ||
默認(rèn) | 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 --如果可以快速刷新則進(jìn)行快速刷新,否則完全刷新
on demand --按照指定方式刷新
start with to_date('24-11-2005 18:00:10', 'dd-mm-yyyy hh34:mi:ss') --第一次刷新時(shí)間
next TRUNC(SYSDATE+1)+18/24 --刷新時(shí)間間隔
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é)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。
分享名稱:oracle如何創(chuàng)建、刷新物化視圖
轉(zhuǎn)載注明:http://jinyejixie.com/article2/pppoic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、靜態(tài)網(wǎng)站、網(wǎng)站策劃、企業(yè)網(wǎng)站制作、移動(dòng)網(wǎng)站建設(shè)、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)