最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle普通視圖和物化視圖的區(qū)別及說明

 更新時間:2025年06月09日 11:01:15   作者:Aries·Zhao  
這篇文章主要介紹了Oracle普通視圖和物化視圖的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

物化視圖介紹

物化視圖是一種特殊的物理表,“物化”(Materialized)視圖是相對普通視圖而言的。

普通視圖是虛擬表,應用的局限性大,任何對視圖的查詢,Oracle都實際上轉(zhuǎn)換為視圖SQL語句的查詢。

這樣對整體查詢性能的提高,并沒有實質(zhì)上的好處。

刷新的方法有四種:FAST、COMPLETE、FORCE和NEVER

FAST刷新采用增量刷新,只刷新自上次刷新以后進行的修改。

COMPLETE刷新對整個物化視圖進行完全的刷新。

FORCE方式,則Oracle在刷新時會去判斷是否可以進行快速刷新,如果可以則采用FAST方式,否則采用COMPLETE的方式。

NEVER指物化視圖不進行任何刷新。

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

二者的區(qū)別在于刷新方法的不同:

ON DEMAND:僅在該物化視圖“需要”被刷新了,才進行刷新(REFRESH),即更新物化視圖,以保證和基表數(shù)據(jù)的一致性;

/*默認情況下,如果沒指定刷新方法和刷新模式,則Oracle默認為FORCE和DEMAND。*/
create materialized view mv_tb as select * from tb_name;

/*指定物化視圖每天刷新一次*/
create materialized view mv_name refresh force on demand start with sysdate
next sysdate+1; 
/*要指定刷新時間比如每天晚上22: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 hh24:mi:ss');

ON COMMIT:一旦基表有了COMMIT,即事務提交,則立刻刷新,立刻更新物化視圖,使得數(shù)據(jù)和基表一致。

/*創(chuàng)建ON COMMIT物化視圖*/
create materialized view mv_tb refresh force on commit as select * from tb_name

創(chuàng)建時生成數(shù)據(jù)分為兩種:build immediate 和 build deferred

分為兩種:build immediate 和 build deferred

  • build immediate 是在創(chuàng)建物化視圖的時候就生成數(shù)據(jù) 。
  • build deferred 則在創(chuàng)建時不生成數(shù)據(jù),以后根據(jù)需要在生成數(shù)據(jù)

如果不指定,則默認為 build immediate

案例使用

我們?nèi)绻龅叫枰獜钠渌到y(tǒng)的數(shù)據(jù)庫中取數(shù)據(jù)進行統(tǒng)計分析的問題,假如雙方數(shù)據(jù)庫都是ORACLE11g,同步表:test_mz_fee

1、創(chuàng)建DB_LINK

/*創(chuàng)建DB_LINK*/
create public database link dblink_his connect to system using '192.168.1.73:1521/oracle';
/*刪除DB_LINK*/
drop database link dblink_his; 
/*刪除的時候報錯:ORA-02018:database link of same name has an open connection*/
/*關(guān)閉dblink:*/
alter session close database link dblink_his;

2、創(chuàng)建Oracle物化視圖快速刷新日志

為配合增量刷新,ORACLE要求要在住表上建立物化視圖日志。

create materialized view log on test_mz_fee with primary key  including new values;  

3、創(chuàng)建Oracle物化視圖

Oracle物化視圖,從名字上面來開,它應該是屬于視圖,但是確實物化。

其物化是針對普通視圖并沒有真正的物理存儲而言,其實可以簡單的把物化視圖看做一個物理表。

create materialized view mv_test_mz_fee /*創(chuàng)建物化視圖*/  
 build immediate  /*在視圖編寫好后創(chuàng)建*/  
  refresh fast with primary key  /*根據(jù)主表主鍵增量刷新(fast,增量)  */
 on demand  /*在用戶需要時,由用戶刷新 */ 
  enable query rewrite  /*可讀寫*/  
 as  
 select * from test_mz_fee@dblink_his; /*查詢語句*/

4、視圖刷新

選擇使用ORACLE自帶工具DBMS_MVIEW工具包中REFRESH方法對物化視圖進行刷新。

該方法有兩個參數(shù),第一個參數(shù)是需要刷新的物化視圖名稱,第二個參數(shù)是刷新方式。

我們可以寫存儲過來,對每個物化視圖調(diào)用一次REFRESH方法,也可以使用“,”把物化視圖連接以來,一次刷新。如下:*/

create or replace procdure p_mview_refresh as  
begin  
dbms_mview.refresh('mv_test_mz_fee','f');  
end p_mview_refresh;  
 
/*方式2*/
create or replace procdure p_mview_refresh as  
begin  
dbms_mview.refresh('mv_test_mz_fee1,mv_test_mz_fee2','ff');
end p_mview_refresh;  

注意:

  • 如果需要同時刷新多個物化視圖,必須用逗號把各個物化視圖名稱連接起來,并對每個視圖都要指明刷新方式(f、增量刷新,c、完全刷新,?、強制刷新)。
  • 當日志和物化視圖創(chuàng)建好后,刪除日志,則需要重新創(chuàng)建物化視圖,否則無法增量刷新。
  • 因為上面寫的物化視圖時根據(jù)主鍵進行更新,因此,主表必須有主鍵。*/

5、日志和物化視圖要刪除

drop materialized view log on test_mz_fee@dblink_his;  
drop materialized view mv_test_mz_fee1;  

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • oracle date 類型字段的處理方法

    oracle date 類型字段的處理方法

    本文主要介紹oracle date 類型字段的處理方法,講解的比較全面,需要的朋友可以參考一下。
    2016-06-06
  • Oracle單實例升級補丁全過程記錄

    Oracle單實例升級補丁全過程記錄

    這篇文章主要介紹了Oracle單實例升級補丁,oracle19.3升級補丁到19.18,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • Oracle PL/SQL入門慨述

    Oracle PL/SQL入門慨述

    Oracle PL/SQL入門慨述...
    2007-03-03
  • Oracle索引質(zhì)量介紹和分析腳本分享

    Oracle索引質(zhì)量介紹和分析腳本分享

    這篇文章主要介紹了Oracle索引質(zhì)量介紹和分析腳本分享,索引質(zhì)量的高低對數(shù)據(jù)庫整體性能有著直接的影響,本文給出了演示以及索引創(chuàng)建的基本指導原則,最后給出了索引質(zhì)量分析腳本,需要的朋友可以參考下
    2014-09-09
  • Oracle使用觸發(fā)器和mysql中使用觸發(fā)器的案例比較

    Oracle使用觸發(fā)器和mysql中使用觸發(fā)器的案例比較

    這篇文章主要介紹了Oracle使用觸發(fā)器和mysql中使用觸發(fā)器的案例比較,本文通過示例講解,給大家介紹的非常詳細,需要的朋友參考下
    2016-12-12
  • oracle中dblink查看、創(chuàng)建、使用以及刪除實例代碼

    oracle中dblink查看、創(chuàng)建、使用以及刪除實例代碼

    當用戶要跨本地數(shù)據(jù)庫訪問另外一個數(shù)據(jù)庫表中的數(shù)據(jù)時,本地數(shù)據(jù)庫中必須創(chuàng)建了遠程數(shù)據(jù)庫的DBLINK,下面這篇文章主要給大家介紹了關(guān)于oracle中dblink查看、創(chuàng)建、使用以及刪除的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • oracle數(shù)據(jù)庫在客戶端建立dblink語法

    oracle數(shù)據(jù)庫在客戶端建立dblink語法

    oracle服務器沒有建立目標數(shù)據(jù)庫的TNS時,在客戶端(有權(quán)限的情況下)建立dblink語法如下,有需求的朋友可以參考下哈
    2013-05-05
  • windows本地安裝配置oracle客戶端完整流程(圖文版)

    windows本地安裝配置oracle客戶端完整流程(圖文版)

    這篇文章主要介紹了windows本地安裝配置oracle客戶端完整流程,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-09-09
  • Oracle控制文件損壞的恢復方案

    Oracle控制文件損壞的恢復方案

    本文介紹了將表空間TS_HX_SB_IDX、IDX_SSD_HX中的索引分批遷移至TS_SSD_IDX的流程及腳本編寫,預計用4個晚上完成,無需業(yè)務停機,并詳細說明了遷移前準備、腳本編寫及遷移后的檢查方法,需要的朋友可以參考下
    2025-10-10
  • 一文解決ORA-01034:?ORACLE?not?available報錯

    一文解決ORA-01034:?ORACLE?not?available報錯

    這篇文章主要給大家介紹了關(guān)于ORA-01034:?ORACLE?not?available報錯解決的相關(guān)資料,這是oracle數(shù)據(jù)庫啟動經(jīng)常會遇到的問題,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2024-03-03

最新評論

乌拉特前旗| 孟州市| 雷山县| 赞皇县| 含山县| 梓潼县| 化州市| 兴山县| 弋阳县| 韶山市| 宜州市| 祥云县| 临颍县| 明光市| 苏尼特右旗| 孟州市| 孝义市| 泽普县| 安仁县| 昆山市| 张家川| 喜德县| 葫芦岛市| 九龙坡区| 乡城县| 嘉荫县| 灵武市| 南澳县| 阳城县| 北碚区| 旅游| 岳阳县| 武川县| 广汉市| 开鲁县| 咸丰县| 张家口市| 成都市| 叶城县| 铁岭县| 孟津县|