[Oracle][Performance]善用Materialized View提高查詢性能#1簡介
Oracle11g R2已正式Release,在10g時小弟以感受到Oracle開發團隊的用心(MV限制越來越少,也越來越Smart)
在正式環境中,小弟已有針對幾個很複雜的SQL查詢使用Materialized View提高查詢性能(效果很不錯)
所以小弟也迫不及待來體驗11g R2 MV是否有那些改變及加強呢??
文章均為自己見解,如有錯誤還請指教
名詞介紹
Materialized view: 具體化視觀表。
Materialized view log: 具體化視觀表日誌。
簡介
Materialized View 是data warehouse中的概念,應用上分兩大方向,提高查詢效能和複製、同步資料。data warehouse中為了對所要統計的查詢快速獲得結果將結果在create時放入MV中,有點像臨時中間table的作用,但MV實體是存在的。方便以後重複查詢,由於資料來源可能包含多tables或單table(base tables),這些table中的資料可能隨時變化,當刷新MV時就會以預先更新過的統計值,讓ORACLE優化器(CBO)可以得到最佳執行計畫(指向MV),進而提高查詢反應時間(空間換時間)。materialized view的引入大大改善了處理複雜SQL系統的性能,同時也提升了回應時間。
特性
提高查詢效率。
同步、複製資料。
需占用實體空間。
刪除Materialized view不會影響原有Sql statment,過程透明。
Materialized view process
11g新特性
11g中針對materialized view和query rewrite的限制比以前寬鬆許多(SQL2008 index view看來就....哀)
也提供很多catalog view讓管理不再像以前麻煩。
Materialized view logging control
Online redefinition for tables with materialized view logs
Query rewrite during refresh
Partition Change Tracking (PCT) refresh for union all mviews
New and enhanced materialized view catalog views
Query rewrite enhancements