Oracle實體化視圖

來源:互聯網
上載者:User

標籤:

1、減輕網路負擔:通過MV將資料從一個資料庫分發到多個不同的資料庫上,通過對多個資料庫訪問來減輕對單個資料庫的網路負擔。 2、搭建分發環境:通過從一個中央資料庫將資料分發到多個節點資料庫,達到分發資料的目的。 3、複製資料子集:MV可以進行行級/列級的篩選,這樣可以複製需要的那一部分資料。create materialized view [view_name]      {TABLESPACE (資料表空間名)}              --儲存資料表空間      {BUILD [DEFERRED|IMMEDIATE(預設值)]} --延遲重新整理還是立即重新整理 refresh [fast|complete|force] [ on [commit|demand] | start with (start_time) next (next_time) ] as {建立物化視圖用的查詢語句}  相關參數說明: 1, Build子句:定義建立方式,包括BUILD IMMEDIATE和BUILD DEFERRED兩種 BUILD IMMEDIATE 在建立實體化視圖的時候就產生資料,預設 BUILD IMMEDIATE  BUILD DEFERRED 在建立時不產生資料,以後根據需要在產生資料  2, Refresh子句:定義資料同步重新整理,當基表發生了DML操作後,實體化視圖何時採用哪種方式和基表進行同步,文法: [refresh [fast | complete | force]          [on demand | commit]          [start with date]          [next date]          [with {primary key | rowid}] ]  FAST 採用增量重新整理,只重新整理自上次重新整理以後進行的修改,如果指定REFRESH FAST子句,那麼應該對主表建立物化視圖日誌,如果沒有建立MView Log的話要進行快速重新整理的話會報錯 注意:對於增量重新整理選項,如果在子查詢中存在分析函數,則物化視圖不起作用。  COMPLETE 對整個物化視圖進行完全的重新整理  FORCE(預設) Oracle在重新整理時會去判斷是否可以進行快速重新整理,如果可以則採用Fast方式,否則採用Complete的方式,Force選項是預設選項  ON DEMAND(預設) 物化視圖在使用者需要的時候進行重新整理,可以手工通過DBMS_MVIEW.REFRESH等方法來進行重新整理,也可以通過JOB定時進行重新整理 ON COMMIT 實體化視圖在對基表的DML操作提交的同時進行重新整理  START WITH 第一次重新整理時間 NEXT 重新整理時間間隔  WITH PRIMARY KEY(預設) 產生主鍵實體化視圖,也就是說實體化視圖是基於表的主鍵,而不是ROWID(對應於ROWID子句)。 為了產生PRIMARY KEY子句,應該在表上定義主鍵,否則應該用基於ROWID的實體化視圖。主鍵實體化視圖允許識別實體化視圖表而不影響實體化視圖增量重新整理的可用性 WITH ROWID 只有一個單一的主表,不能包括下面任何一項: ●Distinct ●彙總函式 ●Group by ●子查詢 ●串連 ●SET操作  3, Query Rewrite子句,定義查詢重寫 包括ENABLE QUERY REWRITE和DISABLE QUERY REWRITE兩種。分別指出建立的實體化視圖是否支援查詢重寫。查詢重寫是指當對實體化視圖的基表進行查詢時,Oracle會自動判斷能否通過查詢實體 化視圖來得到結果,如果可以,則避免了聚集或串連操作,而直接從已經計算好的實體化視圖中讀取資料 ENABLE QUERY REWRITE 支援查詢重寫 DISABLE QUERY REWRITE 不支援查詢重寫,預設DISABLE QUERY REWRITE  注意:如果需要進行快速重新整理,則需要建立實體化視圖日誌。實體化視圖日誌根據不同實體化視圖的快速重新整理的需要,可以建立為ROWID或PRIMARY KEY類型的。還可以選擇是否包括SEQUENCE、INCLUDING NEW VALUES以及指定列的列表。  物化視圖可以進行分區。而且基於分區的物化視圖可以支援分區變化跟蹤(PCT)。具有這種特性的物化視圖,當基表進行了分區維護操作後,仍然可以進行快速重新整理操作。  建立多表關聯的實體化視圖: 實體化視圖包含多表關聯,但不包含彙總操作,僅包含表關聯的實體化視圖同樣支援在兩種情況下重新整理: ON COMMIT 和 ON DEMAND。在 ON COMMIT 下,當基表發生DML操作並提交commit 的時候,實體化視圖被重新整理。 Oracle不允許實體化視圖中有self-jions 的存在。 假如指定重新整理方式為REFRESH FAST, oracle 執行附加的校正,以確定fast refresh能被執行。這些附加的檢查包括: 1 每個基表下必須建立相應的 materialized view log 2 每個基表的rowid 必須在實體化視圖的select 語句中出現 3 如果存在外聯結,在where 子句不能有任何的selections.並且,所有的關聯必須以AND 相連,並且用“=”操作符。 4 如果存在外聯結,唯一性限制式必須存在於外聯的 inner table 的相關列中。

Oracle實體化視圖

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.