oracle materialized view

來源:互聯網
上載者:User

物化視圖,它是用於預先計算並儲存表串連或聚集等耗時較多的操作的結果,這樣,在執行查詢時,就可以避免進行這些耗時的操作,而從快速的得到結果。物化視圖有很多方面和索引很相似:使用物化視圖的目的是為了提高查詢效能;物化視圖對應用透明,增加和刪除物化視圖不會影響應用程式中SQL 陳述式的正確性和有效性;物化視圖需要佔用儲存空間;當基表發生變化時,物化視圖也應當重新整理。   其中物化視圖有三種:聚集物化視圖、包含串連物化視圖、嵌套物化視圖。但三種物化視圖的快速重新整理的限制條件有很大區別,而其他方面則區別不大。建立物化視圖時可以指定多種選項,主要選項如下:   1、建立方式(Build Methods):Build Immediate 和Build Deferred兩種。Build Immediate 是在建立物化視圖的時候就產生資料,而Build Deferred則在建立時不產生資料,以後根據需要在產生資料。預設為Build Immediate 。   2、查詢重寫(Query Rewrite):Enable Query Rewrite和Disable Query Rewrite兩種。分別指出建立的物化視圖是否支援查詢重寫。查詢重寫是指當對物化視圖的基表進行查詢時,Oracle會自動判斷能否通過查詢物化視圖來得到結果,如果可以,則避免了聚集或串連操作,而直接從已經計算好的物化視圖中讀取資料。預設為Disable Query Rewrite。   3、重新整理(Refresh):指當基表發生了DML操作後,物化視圖何時採用哪種方式和基表進行同步。重新整理的模式有兩種:On Demand和On Commit。On Demand指物化視圖在使用者需要的時候進行重新整理,可以手工通過DBMS_MVIEW.REFRESH等方法來進行重新整理,也可以通過JOB定時進行重新整理。On Commit指物化視圖在對基表的DML操作提交的同時進行重新整理。重新整理的方法有四種:Fast 、Complete 、Force和Never。FAST重新整理採用增量重新整理,只重新整理自上次重新整理以後進行的修改。Complete 重新整理對整個物化視圖進行完全的重新整理。如果選擇Force方式,則Oracle在重新整理時會去判斷是否可以進行快速重新整理,如果可以則採用FAST方式,否則採用Complete 的方式。Never指物化視圖不進行任何重新整理。預設值是Force On Demand。   在建立物化視圖的時候可以指定Order by 語句,使產生的資料按照一定的順序進行儲存。不過這個語句不會寫入物化視圖的定義中,而且對以後的重新整理也無效。   4、物化視圖日誌:如果需要進行快速重新整理,則需要建立物化視圖日誌。物化視圖日誌根據不同物化視圖的快速重新整理的需要,可以建立為RowID或Primary Key類型的。還可以選擇是否包括Sequence、Including New Values以及指定列的列表。   可以指明On PreBuild Table語句將物化視圖建立在一個已經存在的表上。這種情況下,物化視圖和表必須同名。當刪除物化視圖時,不會刪除同名的表。這種物化視圖的查詢重寫要求參數Query_Rewrite_integerity必須設定為 trusted或者stale_tolerated。   5、物化視圖可以進行分區。而且基於分區的物化視圖可以支援分區變化跟蹤(PCT)。具有這種特性的物化視圖,當基表進行了分區維護操作後,仍然可以進行快速重新整理操作。對於聚集物化視圖,可以在Group by 列表中使用Cube或RollUp,來建立不同等級的聚集物化視圖。   樣本1:   create materialized view MV_ DOP_TEST   refresh force on demand   as   select dsso.dop_id,   soo.work_center_no,   soo.operation_description   from SHOP_ORDER_OPERATION SOO,   DOP_SUPPLY_SHOP_ORD DSSO   where soo.order_no=dsso.order_no   and soo.release_no=dsso.release_no   and soo.sequence_no=dsso.sequence_no;   ---其中建立與刪除物化視圖與其表或視圖DDL一樣:   DROP materialized view log on materialized_view_log_name ;   建立物化視圖時建立儲存的日誌空間(儲存物化視圖的對象的改變資訊)   CREATE MATERIALIZED VIEW LOG ON Dop_Supply_Shop_Ord_Tab --(基表名)   tablespace ifsapp_DATA --日誌儲存在特定的資料表空間   WITH ROWID ;   drop materialized view MV_materialized_view_name ;   樣本2:   create materialized view MV_DOP_TEST   TABLESPACE ifsapp_DATA --儲存資料表空間   BUILD DEFERRED --延遲重新整理不立即重新整理,此建立初始視圖一般沒資料   refresh force --如果可以快速重新整理則進行快速重新整理,否則完全重新整理   with rowid --根據rowid重新整理(預設是主鍵)   On demand --按照指定方式重新整理   start with to_date('2008-12-11 13:20:51','YYYY-MM-DD HH24:MI:SS') next sysdate+1/48   as   select dsso.dop_id,   soo.work_center_no,   soo.operation_description   from SHOP_ORDER_OPERATION SOO,   DOP_SUPPLY_SHOP_ORD DSSO   where soo.order_no=dsso.order_no   and soo.release_no=dsso.release_no   and soo.sequence_no=dsso.sequence_no

 

------------------------------------------------------------------------------------------------------------------------

create materialized view MV_TEST_1
refresh force on commit--提交時同步重新整理,如果是demand則是手動命令重新整理
as
select t.int_agid,sum(t.int_fyp)
    from agicomphist t
   group by t.int_agid;

------------------------------------------------------------------------------------------------------------------------

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.