日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Oracle物化视图

發布時間:2023/11/27 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle物化视图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

創建物化視圖需要的權限:

grant?create?materialized?view?to?user_name;?

創建語句:

create materialized view mv_name [選項n] as select * from table_name;

?

[選項1]:BUILD [immediate,deferred] 是否在創建視圖時生成數據,默認生成、deferred為不生成數據,需要的時候生成

[選項2]:refresh??[fast|complete|force|never] fast是增量刷新,或者叫快速刷新;complete為全表刷新;force為如果增量刷新可以使用則使用增量刷新,否則全表刷新;never則是不進行刷新(不使用)

[選項3]:on [demand,commit] 即手工刷新和提交時刷新

[選項4]:start with 通知數據庫完成從主表到本地表第一次復制的時間

[選項5]:next 說明了刷新的時間間隔,下次刷新的時間=上次執行完成的時間+時間間隔

?

例子1:

create?materialized?view V_AB refresh force on commit as ?select * from a,b where a.id=b.id

分析:創建一個物化視圖來存儲a,b兩個表的數據,force表示盡量使用增量刷新,但是這種寫法只會進行全表刷新。commit表示自動刷新,也就是說,當我們增刪改a,b表后進行commit操作后,我們的物化視圖也會同時進行數據的刷新。如果想要使用增量刷新來提高效率,請看下面的例子

例子2:

首先要建立與原表rowid相關的物化視圖:

create materialized view log on A with rowid;

create materialized view log on B with rowid;

再創建真正的物化視圖

create materialized view V_AB refresh fast on demand start with sysdate next ?sysdate+1/1440 as?

select a.rowid as arowid,b.rowid as browid, (其余字段) from a,b where a.id=b.id;

這里使用demand代表手動刷新,start with代表開始復制的時間,next說明間隔一分鐘后刷新,也就是說,當我們增刪改a,b表后進行commit操作后,我們的物化視圖再經過1分鐘后會進行數據的刷新。

?

查詢已經建立的物化視圖語句:

SELECT *?FROM user_mviews?WHERE mview_name =?'物化視圖名稱';

?

轉自:https://www.cnblogs.com/lm970585581/p/7872868.html

轉載于:https://www.cnblogs.com/itplay/p/10801753.html

總結

以上是生活随笔為你收集整理的Oracle物化视图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。