简介
物化视图在数据仓库中常用,将结果预先计算好并存储在物化视图中,Oracle数据库通过Query Rewrite访问物化视图。可以提高SQL反应速度,改善用户体验。整个过程对用户是透明的。对于每个物化视图,Oracle会自动建立一个同名表来存储物化视图的数据。
物化视图支持两种刷新方式:
Fast Refresh
Complete Refresh.
Fast refresh的好处在于增量式更新MV,而Complete Refresh需要重新执行MV的Select语句。一个数据量大的基表一次Complete Refresh比Fast Refresh需要更多时间。
聚合式物化视图Fast Refresh的条件:
1. 基表上建立MV Log,MV log必须包含:
- Rowid
- 所有在MV中出现的列
- INCLUDING NEW VALUES
- Sequence
2. MV的select包含
- count(*)
- 对于每个做了聚合的列,都必须有count()
更多条件请见:Oracle Data Warehousing Guide第九章Basic Materialized Views的Restrictions on