Oracle 物化视图1 - 单表聚合及其快速刷新

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

物化视图在数据仓库中常用,将结果预先计算好并存储在物化视图中,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 Fa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值