ORACLE中的物化檢視建立
ORACLE中的物化檢視建立
物化檢視是包括一個查詢結果的資料庫對像,它是遠端資料的的本地副本,或者用來生成基於資料表求和的彙總表。物化檢視儲存基於遠端表的資料,也可以稱為快照。
物化檢視可以查詢表,檢視和其它的物化檢視。
通常情況下,物化檢視被稱為主表(在複製期間)或明細表(在資料倉儲中)。
對於複製,物化檢視允許你在本地維護遠端資料的副本,這些副本是隻讀的。如果你想修改本地副本,必須用高階複製的功能。當你想從一個表或檢視中抽取資料時,你可以用從物化檢視中抽取。
對於資料倉儲,建立的物化檢視通常情況下是聚合檢視,單一表聚合檢視和連線檢視。
本篇我們將會看到怎樣建立物化檢視並且討論它的重新整理選項。
在複製環境下,建立的物化檢視通常情況下主鍵,rowid,和子查詢檢視。
1.主鍵物化檢視:
下面的語法在遠端資料庫表emp上建立主鍵物化檢視
SQL> CREATE MATERIALIZED VIEW mv_emp_pk
REFRESH FAST START WITH SYSDATE
NEXT SYSDATE + 1/48
WITH PRIMARY KEY
AS SELECT * FROM ;
Materialized view created.
注意:當用FAST選項建立物化檢視,必須建立基於主表的檢視日誌,如下:
SQL> CREATE MATERIALIZED VIEW LOG ON emp;
Materialized view log created.
2.Rowid物化檢視
下面的語法在遠端資料庫表emp上建立Rowid物化檢視
SQL> CREATE MATERIALIZED VIEW mv_emp_rowid
REFRESH WITH ROWID
AS SELECT * FROM ;
Materialized view log created.
3.子查詢物化檢視
下面的語法在遠端資料庫表emp上建立基於emp和dept表的子查詢物化檢視
SQL> CREATE MATERIALIZED VIEW mv_empdept
AS SELECT * FROM e
WHERE EXISTS
(SELECT * FROM d
WHERE e.dept_no = d.dept_no)
Materialized view log created.
REFRESH 子句
[refresh [fast|complete|force]
[on demand | commit]
[start with date] [next date]
[with {primary key|rowid}]]
Refresh選項說明:
a. oracle用重新整理方法在物化檢視中重新整理資料.
b. 是基於主鍵還是基於rowid的物化檢視
c. 物化檢視的重新整理時間和間隔重新整理時間
Refresh方法-FAST子句
增量重新整理用物化檢視日誌(參照上面所述)來傳送主表已經修改的資料行到物化檢視中.如果指定REFRESH FAST子句,那麼應該對主表建立物化檢視日誌
SQL> CREATE MATERIALIZED VIEW LOG ON emp;
Materialized view log created.
對於增量重新整理選項,如果在子查詢中存在分析函式,則物化檢視不起作用。
Refresh方法- COMPLETE子句
完全重新整理重新生成整個檢視,如果請求完全重新整理,oracle會完成 完全重新整理即使增量重新整理可用。
Refresh Method – FORCE 子句
當指定FORCE子句,如果增量重新整理可用Oracle將完成增量重新整理,否則將完成完全重新整理,如果不指定重新整理方法(FAST, COMPLETE, or FORCE),Force選項是預設選項
主鍵和ROWD子句
WITH PRIMARY KEY選項生成主鍵物化檢視,也就是說物化檢視是基於主表的主鍵,而不是ROWID(對應於ROWID子句). PRIMARY KEY是預設選項,為了生成PRIMARY KEY子句,應該在主表上定義主鍵,否則應該用基於ROWID的物化檢視.
主鍵物化檢視允許識別物化檢視主表而不影響物化檢視增量重新整理的可用性。
Rowid物化檢視只有一個單一的主表,不能包括下面任何一項:
n Distinct 或者聚合函式.
n Group by,子查詢,連線和SET操作
重新整理時間
START WITH子句通知資料庫完成從主表到本地表第一次複製的時間,應該及時估計下一次執行的時間點, NEXT 子句說明了重新整理的間隔時間.
SQL> CREATE MATERIALIZED VIEW mv_emp_pk
REFRESH FAST
START WITH SYSDATE
NEXT SYSDATE + 2
WITH PRIMARY KEY
AS SELECT * FROM ;
Materialized view created.
在上面的例子中,物化檢視資料的第一個副本在建立時生成,以後每兩天重新整理一次.
總結
物化檢視提供了可伸縮的基於主鍵或ROWID的檢視,指定了重新整理方法和自動重新整理的時間。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/703656/viewspace-906164/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle物化檢視的建立及使用(二)Oracle
- Oracle物化檢視的建立及使用(一)Oracle
- Oracle普通檢視和物化檢視的區別Oracle
- 物化檢視
- 物化檢視(zt)
- 資料庫的物化檢視資料庫
- calcite物化檢視詳解
- 【MVIEW】Oracle通過物化檢視同步表資料及簡介ViewOracle
- 【SQL】Oracle查詢轉換之物化檢視查詢重寫SQLOracle
- 11、Oracle中的檢視Oracle
- 物化檢視分割槽實驗
- oracle db link的檢視建立與刪除Oracle
- 物化檢視幾個知識點
- ClickHouse 物化檢視學習總結
- 基於ROWID更新的物化檢視測試
- ClickHouse 效能優化?試試物化檢視優化
- ClickHouse效能優化?試試物化檢視優化
- StarRocks 物化檢視重新整理流程及原理
- StarRocks 物化檢視重新整理流程和原理
- 物化檢視如何快速完成資料聚合操作?
- 檢視ORACLE中鎖定物件Oracle物件
- 物化檢視日誌無法正常清除的解決方法
- Postgres使用trigger自動重新整理物化檢視
- 物化檢視快速重新整理與ORA-00001
- 使用Materialise物化檢視解耦微服務架構解耦微服務架構
- [重慶思莊每日技術分享]-建立物化檢視時出現ORA-7445錯誤
- 基於圖神經網路的動態物化檢視管理神經網路
- 用exp、imp遷移包含物化檢視日誌的資料
- 火山引擎ByteHouse:如何最佳化ClickHouse物化檢視能力?
- hg_job配置定時重新整理物化檢視
- 資料泵匯出匯入物化檢視(ORA-39083)
- 在django中怎麼檢視建立的資料表Django
- 檢視oracle臨時表空間佔用率的檢視Oracle
- Oracle OCP(24):檢視Oracle
- Oracle 如何高效的檢視官方文件Oracle
- Oracle資料庫scott使用者建立view檢視許可權Oracle資料庫View
- mysql建立索引和檢視MySql索引
- oracle 檢視錶空間Oracle
- 使用SpringBoot+PostgreSQL物化檢視實現微服務設計模式 - vinsguruSpring BootSQL微服務設計模式