<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    瘋狂

    STANDING ON THE SHOULDERS OF GIANTS
    posts - 481, comments - 486, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Oracle物化視圖創建全過程(轉)

    Posted on 2011-08-11 15:26 瘋狂 閱讀(48213) 評論(5)  編輯  收藏 所屬分類: database

    我們如果遇到需要從其它系統的數據庫中取數據進行統計分析的問題,可疑選擇使用ORACLE的ODI工具進行抽數,但是對方提供的數據庫用戶下沒有任何對象,只是有查詢所有表的權限,因此無法做數據反向。

    于是決定使用物化視圖,把對方數據庫中的數據拿過來,雖然數據量比較大,但是每月只拿一次,而且如果設置成增量更新,也不會太慢。現在記錄下物化視圖的創建過程(以一張表為例)。

    一、準備條件以及備注

    假設雙方數據庫都是ORACLE10g,需要同步過來的表名叫:GG_ZLX_ZHU,對方數據庫用戶名:username,密碼:password,SID:CPEES。

    二、開始干活

    1、首先要創建DB_LINK

    1. CREATE DATABASE LINK to_cpees  
    2.  
    3. CONNECT TO "username" identified by "password"  
    4.  
    5. using "CPEES"  

    其中CPEES為新建的到對方數據庫的TNS。執行,現在我們就已經創建了到對方數據庫的DB_LINK TO_CPEES。

    2、創建Oracle物化視圖快速刷新日志

    因為上面說過,以后視圖的刷新將采用增量刷新的方式,因此,為配合增量刷新,ORACLE要求要在住表上建立物化視圖日志。

    1. CREATE MATERIALIZED VIEW LOG ON GG_ZLX_ZHU  
    2.  
    3. WITH PRIMARY KEY  
    4.  
    5. INCLUDING NEW VALUES;  
    6.  

    (上面的SQL要在遠程數據庫上執行,不能在本地執行)

    3、創建Oracle物化視圖

    Oracle物化視圖,從名字上面來開,它應該是屬于視圖,但是確實物化。其物化是針對普通視圖并沒有真正的物理存儲而言,其實可以簡單的把物化視圖看做一個物理表(不再做具體解釋)。

    1. CREATE MATERIALIZED VIEW GG_ZLX_ZHU --創建物化視圖  
    2.  
    3. BUILD IMMEDIATE  --在視圖編寫好后創建  
    4.  
    5. REFRESH FAST WITH PRIMARY KEY  --根據主表主鍵增量刷新(FAST,增量)  
    6.  
    7. ON DEMAND  -- 在用戶需要時,由用戶刷新  
    8.  
    9. ENABLE QUERY REWRITE  --可讀寫  
    10.  
    11. AS  
    12.  
    13. SELECT * FROM GG_ZLX_ZHU@TO_CPEES; --查詢語句  

    4、視圖刷新

    根據業務需要,每月不定時刷新,所以不能是JOB,而且數量多,所以也不能一個一個刷新。根據以上條件,選擇使用ORACLE自帶工具DBMS_MVIEW工具包中REFRESH方法對物化視圖進行刷新。該方法有兩個參數,第一個參數是需要刷新的物化視圖名稱,第二個參數是刷新方式。我們可以寫存儲過來,對每個物化視圖調用一次REFRESH方法,也可以使用“,”把物化視圖連接以來,一次刷新。如下:

    1. CREATE OR REPLACE PROCDURE P_MVIEW_REFRESH AS  
    2.  
    3. BEGIN  
    4.  
    5. DBMS_MVIEW.REFRESH('GG_ZLX_ZHU','f');  
    6.  
    7. END P_MVIEW_REFRESH;  
    8.  

    或者使用

    1. CREATE OR REPLACE PROCDURE P_MVIEW_REFRESH AS  
    2.  
    3. BEGIN  
    4.  
    5. DBMS_MVIEW.REFRESH('GG_ZLX_ZHU,GG_ZLX_FU','ff');  
    6.  
    7. END P_MVIEW_REFRESH;  
    8.  

    注意:

    1、如果需要同時刷新多個物化視圖,必須用逗號把各個物化視圖名稱連接起來,并對

    每個視圖都要指明刷新方式(f、增量刷新,c、完全刷新,?、強制刷新)。

    2、當日志和物化視圖創建好后,刪除日志,則需要重新創建物化視圖,否則無法增量

    刷新。

    3、因為上面寫的物化視圖時根據主鍵進行更新,因此,主表必須有主鍵。

    4、以上文章中紅色是為可替換的,大家可以根據自己項目需求來修改。

    希望上面的內容對大家能有幫助。

    忘了寫刪除方法了,日志和物化視圖要分開刪除

    1. DROP MATERIALIZED VIEW LOG ON GG_ZLX_ZHU@TOCPEES;  
    2.  
    3. DROP MATERIALIZED VIEW GG_ZLX_ZHU;  

    評論

    # re: Oracle物化視圖創建全過程(轉)  回復  更多評論   

    2014-07-03 22:42 by ll
    樓主是長軟的嗎?

    # re: Oracle物化視圖創建全過程(轉)  回復  更多評論   

    2015-09-10 17:42 by 234234
    234234

    # re: Oracle物化視圖創建全過程(轉)  回復  更多評論   

    2015-09-22 10:40 by sdsa
    wss

    # re: Oracle物化視圖創建全過程(轉)  回復  更多評論   

    2016-08-09 15:59 by ya
    17. ORA-06548錯誤
    18. 項目規劃與管理記錄2
    19. tmpFile.renameTo(classFile) failed
    20. redhat6.4 64位安裝rlwrap
    21. ora-01031:insufficient privileges

    # re: Oracle物化視圖創建全過程(轉)  回復  更多評論   

    2016-08-09 16:03 by ya
    1、時間:8月9日(七夕)晚8點
    2、參加對象:微學院全體成員(可邀約家人配合)
    3、釆取自愿報名方式,請于8月9日下午5點之前將曲目以接龍方式報主持人閆瑛娟。
    4、展示形式:唱歌,器樂演奏,誦讀(詩歌或散文等),以講述的方式回味我的愛情故事,我心中的愛情期待等,時間控制在3分鐘之內。
    主站蜘蛛池模板: 亚洲精品视频免费在线观看| 自拍偷自拍亚洲精品被多人伦好爽 | 中文字幕无码毛片免费看| 亚洲av麻豆aⅴ无码电影| 日韩精品亚洲专区在线影视| 好男人视频在线观看免费看片| 一本天堂ⅴ无码亚洲道久久| 亚洲欧洲免费无码| 噜噜综合亚洲AV中文无码| 国产中文字幕免费观看| 深夜特黄a级毛片免费播放| 亚洲国产精品综合久久网络| 成年免费a级毛片| 亚洲成AV人片天堂网无码| 最近免费最新高清中文字幕韩国 | 中文亚洲AV片在线观看不卡 | 一级毛片大全免费播放| 亚洲日韩中文无码久久| 国产好大好硬好爽免费不卡| 久久久亚洲欧洲日产国码aⅴ| 91麻豆最新在线人成免费观看| 亚洲二区在线视频| 国产成人aaa在线视频免费观看| 成人a毛片免费视频观看| 国产∨亚洲V天堂无码久久久| 在线成人爽a毛片免费软件| 亚洲深深色噜噜狠狠网站| 免费人成在线观看视频播放| 在线视频网址免费播放| 久久亚洲sm情趣捆绑调教| 全免费a级毛片免费**视频| 四虎精品免费永久免费视频| 久久青青成人亚洲精品| 永久免费AV无码国产网站| 国产成人综合亚洲| 亚洲AV乱码久久精品蜜桃| 免费无码成人AV片在线在线播放| 亚洲一区二区三区免费| 亚洲av无码片在线观看| 国产亚洲精品不卡在线| 性做久久久久久免费观看|