Oracle物化視圖

來源:互聯網
上載者:User
 

oracle物化視圖
                                       物化視圖對於前台資料庫使用者來說如同一個實際的表,具有和一般表相通的如select等操作,而其實際上是一個視圖,一個由系統實現定期重新整理其資料的視圖(具體重新整理時間在定義物化視圖的時候已有定義),使用物化視圖更可以實現視圖的所有功能,而物化視圖確不是在使用時才讀取,大大提高了讀取速度,特別適用抽取大資料量表某些資訊以及資料鏈串連表使用.具體文法如下: 物化視圖對於前台資料庫使用者來說如同一個實際的表,具有和表相通的一般select操作,而其實際上是一個視圖,一個定期重新整理資料的視圖(具體重新整理時間在定義物化視圖的時候已有定義),使用物化視圖可以實現視圖的所有功能,而物化視圖確不是在使用時才讀取,大大提高了讀取速度,特別適用抽取大資料量表某些資訊以及資料鏈串連表使用.具體文法如下:CREATE MATERIALIZED VIEW an_user_base_file_no_charge
             REFRESH COMPLETE START WITH SYSDATE 
            NEXT  TRUNC(SYSDATE+29)+5.5/24
   as
select distinct user_no
  from cw_arrearage t
 where (t.mon = dbms_tianjin.getLastMonth or
       t.mon = add_months(dbms_tianjin.getLastMonth, -1))drop materialized view an_user_base_file_no_charge; 

第 13 章 物化視圖  8.1.5企業版/個人版開始支援  需要許可權:GRANT CREATE MATERIALIZED VIEW,還必須直接賦予GRANT QUERY REWRITE.為實現查詢重寫,必須使用CBO.  13.1 物化視圖如何工作  設定  COMPATIBLE參數必須高於8.1.0QUERY_REWRITE_ENABLED = TRUEQUERY_REWRITE_INTEGRETY =  ENFORCED - 查詢僅用Oracle強制與保證的約束、規則重寫;  TRUSTED – 查詢除用Oracle強制與保證的約束、規則,也可用使用者設定的資料間的任何關係來重寫;  STALE_TOLERATED – 即便Oracle知道物化視圖中資料到期(與事實表等不同步),也重寫查詢。  建立物化視圖的使用者必須具有直接賦予的GRANT QUERY REWRITE許可權,不能通過角色繼承。  內部機制  全文匹配  部分匹配:從FROM子句開始,最佳化器比較之後的文本,然後比較SELECT列表  一般重寫方法:  資料充分  關聯相容  分組相容  聚集相容  13.2 確保使用物化視圖  約束  考慮到現實環境的資料量,可以將主鍵、外鍵、非空等約束置為NOVALIDATE,並調整QUERY_REWRITE_INTEGRITY為TRUSTED,這樣可以達到“欺騙”資料庫的目的,但必須注意如果無法保證此類約束的真實有效,查詢改寫後可能造成結果不精確。  維度  實際就是指明已存在的表中各列的歸併關係,從而關聯事實表後形成的物化視圖可用於向“上”歸併(相當於用表中代表更高歸併關係的列關聯事實表)。標準文法:CREATE DIMENSION time_hierarchy_dim  LEVEL day      IS time_hierarchy.day  LEVEL mmyyyy   IS time_hierarchy.mmyyyy  LEVEL yyyy     IS time_hierarchy.yyyyHIERARCHY time_rollup(day CHILD OF mmyyyy CHILD OF yyyy)ATTRIBUTE mmyyyyDETERMINES mon_yyyy;  13.3 DBMS_OLAP  估計(物化視圖)大小  DBMS_OLAP.ESTIMATE_SUMMARY_SIZE(視圖名, 視圖定義, 估計行數, 估計位元組數);  其中後兩個參數為NUMBER型輸出參數。  維度有效性檢查  DBMS_OLAP.VALIDATE_DIMENSION(視圖名, 使用者名稱, FALSE, FALSE);  SELECT * FROM 維度資料表名  WHERE ROWIN IN (SEELCT bad_rowid FROM MVIEW$_EXCEPTION);  所選出行即為不符合維度定義的行。  推薦物化視圖  首先必須添加合適的外鍵,包通過外鍵來判定表之間的關係而不是維度。  DBMS_OLAP.RECOMMEND_MV(事實表名, 1000000000, ‘’);  第二個參數表示物化視圖可用的空間大小,可傳入一個較大的數。第三個參數傳入需要保留的特定物化視圖,傳入空即為不考慮其他物化視圖。執行C:\oracle\RDBMS\demo\sadvdemo後執行:  DEMO_SUMADV.PRETTYPRINT_RECOMMENDATIONS  13.4 最後說明  物化視圖不為OLTP系統設計  在事實表等更新時會導致物化視圖行鎖,從而影響系統並發性。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.