简介
物化视图在数据仓库中常用,将结果预先计算好并存储在物化视图中,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 Fas

本文介绍了如何在Oracle数据库中创建和管理物化视图,特别是针对单表聚合操作的快速刷新。通过创建物化视图日志,设置ROWID、SEQUENCE以及必要的统计信息,实现物化视图的高效维护。同时,文章讨论了物化视图的刷新策略,如ON COMMIT,并提供了创建和删除物化视图的SQL示例。最后,提到了PL/SQL辅助包如DBMS_MVIEW和DBMS_ADVISOR在物化视图查询重写中的作用。
最低0.47元/天 解锁文章
4742

被折叠的 条评论
为什么被折叠?



