物化视图使用小结

物化视图的刷新分为ON COMMIT和ON DEMAND两种策略,其中ON COMMIT在提交时立即刷新,可能影响性能;而ON DEMAND需手动或定时刷新。刷新方式有FAST、COMPLETE和FORCE,FAST为增量刷新,需物化视图日志;FORCE在能快速刷新时采用,否则完全刷新;COMPLETE则是先清空再完全刷新,可能导致短暂服务中断。
摘要由CSDN通过智能技术生成

物化视图的刷新有二类,分别是:on commit on demand。刷新方法有三种分别是:快速(FAST),完全(COMPLETE),强制(FORCE);

ON COMMIT DEMAND 在应用中的问题

ON COMMIT

如果选择on commit ,则在对主表应用上会造成速度,这是因为ORACLE在对主表操作提交后马上会进行刷新物化视图操作,这部分时间是也包括在提交时间中。

a) refresh force on commit:中对删,新增记录,物理视图都能真实反映主表的变化。同时这种情况下不用建物化视图日志表。缺点是提交时间长。

b) refresh fast on commit:中对新增或修改能真实反映主表的变化,但对删除则不能反映,必须进行一次完全刷新。

 

ON DEMAND

DEMAND必须用DBMS_MVIEW.REFRESH存储过程建立的JOB去定时刷新物化视图。

a) refresh fast on DEMAND:必须通过调用DBMS_MVIEW.REFRESH存储过程来进行快速刷新反映主表新增情况;但当对主表中的数据删除或修改时,快速刷新则会报错,因此必须调DBMS_MVIEW.REFRESH的完全刷新才能反映。可以通过建立JOB解决。

表1:快速刷新

declare
v_mvname varchar2(50);
begin
v_mvname:='MOCHA_FE_DOC_CONTENT_MV';
dbms_mview.refresh(v_mvname,'f');
end;
/

 
 
 
 
 
 
 
 

表2:完全刷新

declare
v_mvname varchar2(50);
begin
v_mvname:='MOCHA_FE_DOC_CONTENT_MV';
dbms_mview.refresh(v_mvname,'C');
end;
/

 
 
 
 
 
 
 
 

 

注意:用FAST 刷新物化视图,前提要新建物化视图日志表。

b) refresh force/complate on DEMAND:

在这种方式下物化视图也是无法自动刷新,必须通过JOB或手工。

FASTFORCECOMPLETE区别

FAST:增量式刷新,使用此方法必须有前提,就是建立物化视图日志表。

FORCE::如果可以以fast 方式刷新则用,否则完全刷新。

COMPLETE:先将物化视图表内容删除,然后再刷新。此方式缺少就是在刷新时间内用法在页面无法查到的所需要内容。

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值