91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

物化視圖和普通視圖的區別

發布時間:2020-07-02 15:31:13 來源:網絡 閱讀:2969 作者:sunhuabin2016 欄目:關系型數據庫

    物化視圖是一種特殊的物理表,“物化”(Materialized)視圖是相對普通視圖而言的。普通視圖是虛擬表,應用的局限性大,任何對視圖的查詢,Oracle都實際上轉換為視圖SQL語句的查詢。這樣對整體查詢性能的提高,并沒有實質上的好。

    物化視圖:是包括一個查詢結果的數據庫對像,它是遠程數據的的本地副本,或者用來生成基于數據表求和的匯總表。物化視圖存儲基于遠程表的數據,也可以稱為快照!

    1.物化視圖的類型:ON DEMAND、ON COMMIT 

    二者的區別在于刷新方法的不同,ON DEMAND顧名思義,僅在該物化視圖“需要”被刷新了,才進行刷新(REFRESH),即更新物化視圖,以保證和基表數據的一致性;而ON COMMIT是說,一旦基表有了COMMIT,即事務提交,則立刻刷新,立刻更新物化視圖,使得數據和基表一致

    2、ON DEMAND物化視圖:物化視圖的創建本身是很復雜和需要優化參數設置的,特別是針對大型生產數據庫系統而言。但Oracle允許以這種最簡單的,類似于普通視圖的方式來做,所以不可避免的會涉及到默認值問題。也就是說Oracle給物化視圖的重要定義參數的默認值處理是我們需要特別注意的。

    3.物化視圖的特點:    

     (1) 物化視圖在某種意義上說就是一個物理表(而且不僅僅是一個物理表),這通過其可以被user_tables查詢出來,而得到佐證;    

     (2) 物化視圖也是一種段(segment),所以其有自己的物理存儲屬性;    

     (3) 物化視圖會占用數據庫磁盤空間,這點從user_segment的查詢結果,可以得到佐證;    

     創建語句:create materialized view mv_name as select * from table_name    

     默認情況下,如果沒指定刷新方法和刷新模式,則Oracle默認為FORCE和DEMAND。

    4.物化視圖的數據怎么隨著基表而更新?    

     Oracle提供了兩種方式,手工刷新和自動刷新,默認為手工刷新。也就是說,通過我們手工的執行某個Oracle提供的系統級存儲過程或包,來保證物化視圖與基表數據一致性。這是最基本的刷新辦法了。自動刷新,其實也就是Oracle會建立一個job,通過這個job來調用相同的存儲過程或包,加以實現。

    ON DEMAND物化視圖的特性及其和ON COMMIT物化視圖的區別,即前者不刷新(手工或自動)就不更新物化視圖,而后者不刷新也會更新物化視圖,——只要基表發生了COMMIT

    創建定時刷新的物化視圖:create materialized view mv_name refresh force on demand start with sysdate  next sysdate+1 (指定物化視圖每天刷新一次)

    上述創建的物化視圖每天刷新,但是沒有指定刷新時間,如果要指定刷新時間(比如每天晚上10:00定時刷新一次):create materialized view mv_name refresh force on demand start with sysdate next to_date( concat( to_char( sysdate+1,'dd-mm-yyyy'),' 22:00:00'),'dd-mm-yyyy hh34:mi:ss')

    5、ON COMMIT物化視圖    

       ON COMMIT物化視圖的創建,和上面創建ON DEMAND的物化視圖區別不大。因為ON DEMAND是默認的,所以ON COMMIT物化視圖,需要再增加個參數即可

       需要注意的是,實際創建過程中,基表需要有主鍵約束,否則會報錯(ORA-12014)

    6、物化視圖的刷新    

       刷新(Refresh):指當基表發生了DML操作后,物化視圖何時采用哪種方式和基表進行同步。

       刷新的模式有兩種:ON DEMAND和ON COMMIT。(如上所述) 刷新的方法有四種:FAST、COMPLETE、FORCE和NEVER。FAST刷新采用增量刷新,只刷新自上次刷新以后進行的修改。COMPLETE刷新對整個物化視圖進行完全的刷新。如果選擇FORCE方式,則Oracle在刷新時會去判斷是否可以進行快速刷新,如果可以則采用FAST方式,否則采用COMPLETE的方式。NEVER指物化視圖不進行任何刷新 

      對于已經創建好的物化視圖,可以修改其刷新方式,比如把物化視圖mv_name的刷新方式修改為每天晚上10點刷新一次:alter materialized view mv_name refresh force on demand start with sysdate next to_date(concat(to_char(sysdate+1,'dd-mm-yyyy'),' 22:00:00'),'dd-mm-yyyy hh34:mi:ss')

    7、物化視圖具有表一樣的特征,所以可以像對表一樣,我們可以為它創建索引,創建方法和對表

    8、物化視圖的刪除:     

       雖然物化視圖是和表一起管理的,但是在經常使用的PLSQL工具中,并不能用刪除表的方式來刪除(在表上右鍵選擇‘drop’并不能刪除物化視圖),可以使用語句來實現:drop materialized view mv_name


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临泉县| 铜梁县| 玛纳斯县| 英德市| 息烽县| 长寿区| 佛山市| 肇源县| 宜君县| 荣昌县| 方山县| 荥经县| 陵水| 灵宝市| 囊谦县| 孟津县| 镇康县| 乌拉特后旗| 利津县| 剑川县| 黑水县| 汶川县| 改则县| 班玛县| 祥云县| 仲巴县| 佛学| 天峻县| 萨迦县| 盐源县| 睢宁县| 桐庐县| 通辽市| 凤山县| 镶黄旗| 屏东县| 枣阳市| 和静县| 宝应县| 天全县| 大关县|