建立物化視圖詳解(圖解),物化視圖詳解圖解

來源:互聯網
上載者:User

建立物化視圖詳解(圖解),物化視圖詳解圖解

建立物化視圖詳解

                

一,什麼是物化視圖

    物化視圖是包括一個查詢結果的資料庫物件,它是遠端資料的的本機複本,或者用來產生基於資料表求和的匯總表。物化視圖儲存基於遠端資料表的資料,也可以稱為快照。

二,作用、

在類似統計功能中,查詢操作是無可避免,而這些查詢操作如果很頻繁,對整體資料庫效能是很致命的。而物化視圖實現遠端資料源與本機資料的即時同步,也就是定時重新整理,通過在本地建立物化視圖可以大大提高查詢效率。

三,流程圖:

 

當使用者要跨本機資料庫,訪問另外一個資料庫表中的資料時,本機資料庫中必須建立了遠端資料庫的dblink,通過dblink本機資料庫可以像訪問本機資料庫一樣訪問遠端資料庫表中的資料。物化視圖是一種特殊的物理表,“物化”(Materialized)視圖是相對普通視圖而言的。普通視圖是虛擬表,應用的局限性大,任何對視圖的查詢,Oracle都實際上轉換為視圖SQL語句的查詢。這樣對整體查詢效能的提高,並沒有實質上的好處。所以需要再在普通視圖(view)上建立物化視圖,程式通過對物化視圖的訪問可以大大提高效率。

 

四,圖解步驟(使用PL/SQL)

1,用戶端配置網路服務名

 

 

2,建立DataBase Links

 

3,建立物化視圖

 

修改SQL,添加建立視圖的模式,重新整理的方式和同步時間間隔:


說明:

建立物化視圖的模式的方式有兩種:ON DEMAND 和ON COMMIT:

ON DEMAND指物化視圖在使用者需要的時候進行重新整理,可以手工重新整理,也可以通過JOB定時進行重新整理。

ON COMMIT指物化視圖在對基表的DML操作提交的同時進行重新整理。

重新整理的方法有四種:FAST、COMPLETE、FORCE和NEVER

FAST:採用增量重新整理,只重新整理自上次重新整理以後進行的修改。

COMPLETE:對整個物化視圖進行完全的重新整理

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

NEVER指物化視圖不進行任何重新整理。

預設值是FORCE ON DEMAND。

 

4,在物化視圖上建立視圖(統計)

 

5,在統計視圖上建立物化視圖

 

五,使用命令建立步驟:

1,建立DB link

-- Drop existing database link 

drop database link ZHUHAI.COM;

-- Create database link 

create database link ZHUHAI.COM

  connect to ZHUHAI

  using 'haikou';

2,建立物化視圖

CREATE MATERIALIZED VIEW MV_DBDIC

REFRESH FORCE ON DEMAND

START WITH SYSDATE

NEXT SYSDATE+(2/(24*3600))   

AS

SELECT "DBDIC"."ID" "ID","DBDIC"."DBNUM" "DBNUM","DBDIC"."NAME" "NAME" FROM "DBDIC"@ZHUHAI.COM "DBDIC";

 

3,建立視圖

create or replace view countview as

select COUNT(*) COUNT

from MV_DBDIC;

4,在步驟3建立的視圖上建立物化視圖

create materialized view MV_COUNTVIEW

refresh force on demand

as

select *

    from COUNTVIEW;

六,注意點:

1,需要先在用戶端配置資料來源網路服務名

2,資料來源的源表必須有主鍵

 

 備忘,如果有哪位同志有什麼疑問,隨時可以q我,共同進步

qq :843620202

 

 


物化視圖怎建立,這個參數的意義?

1、給你的物化視圖建立一個共有同義字【public synonym】,這樣所有的使用者就可以訪問你的物化視圖了。
2、create public synonym synonym_name for 物化視圖名;
3、以後別的使用者訪問【synonym_name】就相當於訪問你的物化視圖了,而且由於是用的public別名所以不用特殊賦許可權就可以。

說明:但值得注意的是要把建 public synonym 的許可權給使用者,
grant create public synonym to 使用者;

---
以上,希望對你有所協助。
 
物化視圖建立問題

需要對錶“zjhis”."xx_xx"建立物化視圖日誌,才可以加入物化視圖。

你建立物化視圖時設定的是On demand
所以並不會自動重新整理,需要手動重新整理或者建立job來執行。這個是需要手動建立的。

如果設定為On commit
就會在基表有更新時自動重新整理。就不需要另外建job或者手動重新整理了。
 

相關文章

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.