详解物化视图(汇总比较有用的资料)

本文详细介绍了Oracle物化视图的创建、刷新方法、物化视图日志、查询重写以及基于主键和ROWID的物化视图。特别强调了快速刷新的条件,包括增量刷新、完全刷新和强制刷新。此外,还探讨了物化视图日志的创建和物化视图的存储表空间。文章通过实例展示了如何创建物化视图及其日志,并给出了导致物化视图无法快速刷新的问题定位方法,通过DBMS_MVIEW.EXPLAIN_MVIEW过程帮助诊断错误。

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

物化视图是包括一个查询结果的数据库对象,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。对于复制,物化视图允许你在本地维护远程数据的副本 , 这些副本是只读的。如果你想修改本地副本,必须用高级复制的功能。当你想从一个表或视图中抽取数据时,你可以用从物化视图中抽取。   对于数据仓库,创建的物化视图通常情况下是聚合视图,单一表聚合视图和连接视图。物化视图可以查询表,视图和其它的物化视图。

一、            关于物化视图日志:

查询物化视图日志文件格式:desc mlog$_lzwmvtest;

创建物化视图时默认指定物化视图中存在主键,如果不指定,那么创建的物化视图日志文件的基表必须存在主键,否则会报错

Demo:对一个表test

创建日志:create materialized view log on test;

那么会报:'LZWMVTEST'不包含主键约束条件

这种情况下,就必须指定日志文件结构

比如:create materialized view log on test with rowid(具体的针对日志内容方面的在另外一个专题里说明,这里就简述到此)

二、            关于生成数据和刷新:

1>生成数据

两大选项:build immediate   build deferred

Build immediate:在创建物化视图的同时根据主表生成数据

Bulid deferred:在创建物化视图的同时,在物化视图内不生成数据,如果此时没有生成数据,以后可以采取:EXEC DBMS_MVIEW.Refresh(‘MV_name’,’C’),注意必须使用全量刷新,默认是增量刷新,所以这里参数必须是C,因为之前都没有生成数据,所以必须全量。

2>关于刷新

²        刷新方式:complete fast force

Complete :完全刷新整个物化视图,相当于重新生成物化视图,此时即时增量刷新可用也全量刷新

Ø         Fast:当有数据更新时依照相应的规则对物化视图进行更新(此时必须创建物化视图日志(物化视图日志记录了数据更新的日志),关于日志的说明,参照“物化视图日志文件介绍”)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值