序號 | 術語/縮略語 | 全稱和說明 |
---|---|---|
1 | 物化視圖(Materialized View) | 物化視圖用來存儲數據副本或集合,能夠用來複制本地或遠程表的所有或者部分,或者複製對多個表的查詢結果。物化視圖可根據須要自動完成複製數據的自動刷新。 |
2.1 表關聯的物化視圖,若是使用fast刷新模式,只能用基於rowid的物化視圖。 數據庫
這是MV的技術限制要求。 jsp
2.2 不容許使用On Commit的刷新模式,須使用On Demand的模式進行刷新工做。 性能
爲不影響數據庫的性能,不容許使用On Commit的刷新模式,由於若是使用On Commit的刷新模式數據庫會將物化視圖的刷新操做做爲Commit事務處理的一部分來執行,從而增長了Commit完成的時間。 spa
2.3 On demand refresh方式的MV,不容許使用START WITH的自動刷新模式,要求自行開發用於物化視圖刷新的JOB。 設計
爲了便於管理,要求自行開發用於物化視圖刷新的JOB,並設置定時調度來代替物化視圖的自動刷新功能。爲刷新工做建立的JOB要遵照《JOB管理規範》。 日誌
2.4 不容許使用Force Refresh方式。 code
Force Refresh方式Oracle自動判斷是否知足Fast刷新條件,若是知足則進行Fast刷新,不然進行Complete刷新,使用Force Refresh方式帶有不肯定性,所以不容許使用Force Refresh方式。 對象
2.5 除了初始化數據和大的維護工做外,不能使用Complete Refresh方式,只能使用Fast Refresh方式。 索引
因爲Complete Refresh方式會將表清空後從新複製數據,將佔用大量的資源。所以除了初始化數據或者是很大的維護工做外,物化視圖不容許採用Complete方式進行刷新。 事務
2.6 若是存在預建表,且預建表再沒有其餘的用途,在刪除物化視圖時,須要同時刪除預建表。若想不刪除,需申請例外。
使用預建表方式建立的物化視圖,在刪除物化視圖後,所建的同名的預建表不會自動刪除,還能夠進行查詢操做,所以須要手動進行刪除。
drop materialized view 屬主.物化視圖名; drop table 屬主.預建表名;
drop materialized view olapdata.CAL_MONTH_SALES_MV; drop table olapdata.CAL_MONTH_SALES_MV;
2.7 刪除物化視圖時,若是是快速刷新的物化視圖,須要同時刪除物化視圖日誌。
在使用快速刷新時,須要建立基於物化視圖的日誌表,所以在刪除物化視圖時,同時須要刪除此日誌表。
注意:對於物化視圖和物化視圖日誌表不在同一個數據庫的狀況,在刪除物化視圖和物化視圖日誌表時,須要鏈接到相應的數據庫刪除對應的對象。
若是物化視圖和物化視圖日誌表是不一樣的Schema,在刪除物化視圖和物化視圖日誌表時,須要以不一樣的Schema用戶登陸並刪除,或臨時授予刪除權限。
drop materialized view log on 表屬主.表名;
drop materialized view log on olapdata.cal_month_sales;
2.8 爲了保證mview可以進行fast refresh,需在Materialized View Log建立時加入sequence參數。
sequence的做用在於肯定dml操做的前後順序,當對於多表進行mixed dml操做時,涉及到join+aggregate類型的mv要進行fast refresh則需設置sequence的關鍵字。