首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 物化視圖核心機制:三大類型、查詢重寫、刷新策略與建立選項

     編輯:Oracle 資料庫基礎

物化視圖預先計算並儲存昂貴的 JOIN/聚合結果,查詢時直接讀取,大幅加速回應。與索引相似:透明、佔空間、基表變更需刷新。

一、三大類型

類型特徵快速刷新限制差異
含聚合GROUP BY、SUM/COUNT 等需物化視圖日誌記錄 ROWID/PK + 序列
僅連接多表 JOIN 無聚合需各基表日誌
巢狀基於其他物化視圖遞歸依賴,限制最嚴格

二、建立核心選項

  1. Build Method:
    - BUILD IMMEDIATE (預設):建立即填充資料。
    - BUILD DEFERRED:僅建立定義,稍後 REFRESH 填充。
  2. Query Rewrite:
    - ENABLE QUERY REWRITE:優化器自動改寫查詢導向物化視圖。
    - DISABLE QUERY REWRITE (預設):不啟用重寫。
  3. Refresh:
    模式:ON DEMAND (手動/排程) / ON COMMIT (交易提交同步)。
    方法:FAST (增量) / COMPLETE (全量) / FORCE (預設:嘗試 FAST 失敗轉 COMPLETE) / NEVER。

預設:FORCE ON DEMAND。

三、進階特性

  • ORDER BY 子句:僅影響初建資料排序,**不存入定義,刷新時失效**。
  • ON PREBUILT TABLE:掛載既有表為物化視圖,刪除視圖不刪表。需 QUERY_REWRITE_INTEGRITY=TRUSTED/STALE_TOLERATED。
  • 支援分區 + PCT (Partition Change Tracking) → 分區維護後仍可 FAST REFRESH。
  • 聚合視圖可用 GROUP BY CUBE/ROLLUP 產生多層級摘要。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved