oracle 物化視圖 總結

來源:互聯網
上載者:User

(可在報表組應用)

物化視圖是包括一個查詢結果的資料庫對像,它是遠端資料的的本機複本,或者用來產生基於資料表求和的匯總表。物化視圖儲存基於遠端資料表的資料,也可以稱為快照。
物化視圖可以查詢表,視圖和其它的物化視圖。主要用在資料倉儲和決策支援系統。
通常情況下,物化視圖被稱為主表(在複製期間)或明細表(在資料倉儲中)。
對於複製,物化視圖允許你在本地維護遠端資料的副本,這些副本是唯讀。如果你想修改本機複本,必須用進階複製的功能。當你想從一個表或視圖中抽取資料時,你可以用從物化視圖中抽取。
對於資料倉儲,建立的物化視圖通常情況下是彙總檢視,單一表彙總檢視和串連視圖。

物化視圖把他的物理結構儲存在自己的段中,該段可以被索引和分區。
查詢不必完全符合用來建立物化視圖的SQL語句,最佳化程式可以動態重寫一個與原定義相近的查詢,以便物化視圖用來代替實際的表,這種查詢重寫自動發生,對使用者是透明的。(9.0.1 A89852-02的29章詳述了跟蹤是否使用了物化視圖的過程)

使用物化視圖前的幾個配置步驟
1)確定那些語句要建立物化視圖。(Oracle Summary Advisor工具,9.0.1 A90237-01 第16章)
2)決定是否要保持視圖與基礎資料表資料同步。
如果不同步,可選擇如下三種重新整理方式:
- COMPLETE:重新整理啟動時,先truncate物化視圖,再從基礎資料表重新插入填充資料。
- FAST:只重新整理基礎資料表上次重新整理以來改變了的資料。使用視圖的日誌資料或ROWID完成。
- FORCE:預設的方式。先使用FAST,不行就使用COMPLETE方式。
3)設定init.ora的參數:
- JOB_QUEUE_PROCESSES,必須設定大於 1。
- QUERY_REWRITE_ENABLED,設定為TRUE時,允許動態重寫查詢。
- QUERY_REWRITE_INTEGRITY,確定訪問物化視圖時資料一致性要遵守的程度。
- OPTIMIZER_MODE,必須設定成CBO的某種方式。

使用一個物化視圖,使用者只需在基礎資料表上擁有許可權即可。

建立物化視圖
SQL>create materialized view emp_by_district
Tablespace mview_data
Build immediate
Refresh fast
Enable query rewrite
As
Select d.id,count(e.last_name) from distributor dist,district d,employee e
Where e.id = dist.manager_id
And d.id dist.district_id
Group by d.id;

Build immediate一共有三個選項:
1) Build immediate:建立物化視圖,並使用當前命令執行的資料馬上填充視圖資料。
2) Build deferred:只建立物化視圖,在第一次重新整理之間不填充資料。
3) No prebuilt table,使用事先已存在的,已含有視圖定義中有現有資料的表,而不是建立一個新結構來儲存資料。

如果是refresh fast on commit或refresh complete on commit建立的,則在基礎資料表提交的時候都會得到重新整理。

 啟用或禁用物化視圖,需要有query rewrite或global query rewrite許可權。

重新整理物化視圖
- 自動重新整理
1) 使用commit選項。
2) 使用dbms_mview安排自動重新整理時間。
- 手工重新整理
SQL>execute dbms_mview.refresh(‘EMP_BY_DISTRICT’); --重新整理指定的物化視圖
SQL>execute dbms_mview.refresh_defresh_dependent(‘EMPLOYEE’);――重新整理利用了該表的所有物化視圖
SQL>execute dbms_mview.refresh_all_mviews;――重新整理該模式中,自上次重新整理以來,未得到重新整理的所有物化視圖。

禁用物化視圖
 - 修改init.ora參數的query_rewrite_enabled參數設定成flase,重啟執行個體。
 - 使用alter system set query_rewrite_enabled = flase;動態修改。
 - 使用alter session set query_rewrite_enabled = flash;修改會話內。
 - 使用 norewrite提示。

刪除物化視圖
SQL>drop materialized view emp_by_district;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.