物化視圖(Material View)是包括一個查詢結果的資料庫對象,它是遠端資料的的本地副本,或者用來生成基于資料表求和的彙總表。物化視圖存儲基于遠端表的資料,也可以稱為快照(類似于MSSQL Server中的Snapshot,靜态快照)。
對于複制,物化視圖允許使用者在本地維護遠端資料的副本,這些副本是隻讀的。如果使用者想修改本地副本,必須用進階複制的功能。當使用者想從一個表或視圖中抽取資料時,使用者可以用從物化視圖中抽取。對于資料倉庫,建立的物化視圖通常情況下是聚合視圖,單一表聚合視圖和連接配接視圖。
物化視圖和視圖類似,反映的是某個查詢的結果,但是和視圖僅儲存SQL定義不同,物化視圖本身會存儲資料,是以是物化了的視圖。
物化視圖主要分為兩類:
- 用于資料複制的物化視圖:物化視圖的一個主要功能就是用于資料的複制,Oracle推出的進階複制功能分為兩個部分,多主複制和物化視圖複制。而物化視圖複制就是利用了物化視圖的功能。物化視圖複制包含隻讀物化視圖複制、可更新物化視圖複制和可寫物化視圖複制。
- 用于預計算的物化視圖:這種類型的物化視圖一般用于資料倉庫系統。主要用于預先計算并儲存表連接配接或聚集等耗時較多的操作的結果,這樣,在執行查詢時,就可以避免進行這些耗時的操作,而從快速的得到結果。這種物化視圖還經常使用查詢重寫機制,這樣不需要修改原有的查詢語句,Oracle會自動選擇合适的物化視圖進行查詢,完全對應用透明。這種物化視圖可以分為以下三種類型:包含聚集的物化視圖;隻包含連接配接的物化視圖;嵌套物化視圖。三種物化視圖的快速重新整理的限制條件有很大差別,而對于其他方面則差別不大。
資料來源:
Oracle 物化視圖
https://www.linuxidc.com/Linux/2017-08/146161.htm楊少軍, 範金存, 李慶忠. 資料倉庫中物化視圖的選擇[J]. 計算機應用, 2003(09):60-62.
王新軍, 洪曉光, 王海洋, et al. 資料倉庫中多資料源物化視圖的一種有效更新算法[J]. 計算機研究與發展, 2004(05):107-112.