Oracle中的視圖和實例化視圖之間有什麼區別?

Oracle中的視圖和實例化視圖之間有什麼區別? 數據庫


#1樓

物化視圖 -磁盤上包含查詢結果集的表 性能

非標準化視圖 -從基礎表中提取數據的查詢 spa


#2樓

在Mike McAllister的漂亮回答中加了... 索引

當編譯器認爲視圖查詢很簡單時,只能將實例化視圖設置爲經過數據庫自動刷新以檢測更改。 若是認爲它太複雜,它將沒法設置本質上是內部觸發器的組件來跟蹤源表中的更改,從而僅更新mview表中的更改行。 編譯器

建立實例化視圖時,您會發現Oracle同時建立了mview 和具備相同名稱的表 ,這會使事情變得混亂。 編譯


#3樓

視圖:視圖只是一個命名查詢。 它不存儲任何內容。 視圖上存在查詢時,它將運行視圖定義的查詢。 實際數據來自表。 基礎

物化視圖:物理存儲數據並按期更新。 查詢MV時,它會提供MV中的數據。 方法


#4樓

物化視圖是由選擇查詢驅動的數據邏輯視圖,可是查詢結果將存儲在表或磁盤中,查詢的定義也將存儲在數據庫中。 命名

物化視圖的性能優於普通視圖,由於物化視圖的數據將存儲在表中,而且表可能會被索引,所以鏈接速度更快,而且在物化視圖刷新時也會進行鏈接,所以無需每次觸發鏈接語句,視狀況而定。 數據

其餘區別包括:在使用View的狀況下,咱們老是獲取最新數據,可是在實現視圖的狀況下,咱們須要刷新視圖以獲取最新數據。 在實例化視圖的狀況下,咱們須要額外的觸發器或某種自動方法,以便咱們能夠保持MV的刷新,而數據庫中的視圖則不須要這樣作。


#5樓

物化視圖基於磁盤,並根據查詢定義按期更新。

視圖僅是虛擬的,每次訪問時都運行查詢定義。

相關文章
相關標籤/搜索