ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 物化视图使用小结

物化视图使用小结

原创 Linux操作系统 作者:buliaoqingtian 时间:2019-04-24 12:48:05 0 删除 编辑
对客户进行SQL优化,后对物化视图进行一下总结

物化视图使用小结

物化视图的刷新有二类,分别是: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或手工。

FAST、FORCE、COMPLETE区别

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

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

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

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/526592/viewspace-236703/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 年终回忆
请登录后发表评论 登录
全部评论

注册时间:2005-08-03

  • 博文量
    88
  • 访问量
    106023