阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle物化视图增量刷新测试

176次阅读
没有评论

共计 2568 个字符,预计需要花费 7 分钟才能阅读完成。

说明:物化视图刷新方式有三种:全量刷新、增量刷新和强制刷新,三种刷新方式具体如下:

全量刷新(complete):不管使用哪种刷新方式,物化视图的首次刷新都使用全量刷新的方式。全量刷新机制是首先物化视图对应表中的数据采用 delete 全部删除,然后再从原表中使用 insert 把数据重新插入。

增量刷新(fast):增量刷新是基于主表上的物化视图日志(MLOG$_tablename)进行刷新的,主表上每插入或删除一条数据,对应物化视图日志中同样会插入一条数据(主表更新一条数据,对应物化视图中会插入两条记录数据),

物化视图刷新后主表上物化视图日志记录信息会被清空,重新开始记录后面的更新。

强制刷新(force):当物化视图满足增量刷新的条件时使用增量刷新,否则使用全量刷新。

增量刷新测试:

1、数据库 eisoo 上使用 u01 用户创建主表
create table t1(id int,name varchar2(20));
 alter table t1 add constraints pk_t1 primary key(id);
 create sequence t1_seq increment by 1 start with 1 minvalue 1 maxvalue 9999999999999 nocache order;

 create or replace procedure insert_to_t1 as
 begin
  insert into t1 values (t1_seq.Nextval,’abc’);
  commit;
 end;
 /

 declare
  job number;
 begin
  dbms_job.submit(job,’insert_to_t1;’,sysdate,’sysdate+1′);
 end;
 /

 create materialized view log on u01.t1 with primary key including new values;

 2、数据库 wqwq 上使用 u01 用户创建物化视图,采用增量刷新定时同步主表 U01.t1 数据

create materialized view u01.t1 refresh fast on demand with primary key as select * from u01.t1@wqwq_to_eisoo;  –wqwq_to_eisoo 是 wqwq 数据库到 eisoo 数据库的 dblink

创建物化视图自动刷新的 job
 declare
 job_id number;
 begin
  DBMS_JOB.submit(
    job =>job_id,
    what => ‘begin
        dbms_mview.refresh(”U01.T1”,”F”);
          end;’,
    next_date => sysdate,
    interval => ‘sysdate + 1/144’);
  COMMIT;
 end;
 /

 3、验证物化视图刷新
SQL> select MVIEW_NAME,to_char(LAST_REFRESH_DATE,’yyyy-MM-dd HH24:mi:ss’),LAST_REFRESH_TYPE,FAST_REFRESHABLE from user_mviews;  – 物化视图在 15:45:34 时刷新一次

MVIEW_NAME              TO_CHAR(LAST_REFRES LAST_REF FAST_REFRESHABLE
 —————————— ——————- ——– ——————
 T1                  2016-09-30 15:45:34 FAST    DIRLOAD_DML

 SQL> select * from MLOG$_T1 order by id;    – 主表物化视图日志记录信息

    ID SNAPTIME$$          D O CHANGE_VECTOR$$              XID$$
 ———- ——————- – – —————————— ———-
        228 4000/01/01 00:00:00 I N FE                  1.9704E+15
        229 4000/01/01 00:00:00 I N FE                  8.4456E+14
        230 4000/01/01 00:00:00 I N FE                  2.8148E+15
        231 4000/01/01 00:00:00 I N FE                  5.6308E+14
        232 4000/01/01 00:00:00 I N FE                  8.4454E+14
        233 4000/01/01 00:00:00 I N FE                  2.8149E+15
        234 4000/01/01 00:00:00 I N FE                  1.4075E+15

 7 rows selected.

SQL> select MVIEW_NAME,to_char(LAST_REFRESH_DATE,’yyyy-MM-dd HH24:mi:ss’),LAST_REFRESH_TYPE,FAST_REFRESHABLE from user_mviews;    – 物化视图在 15:55:34 时再次刷新一次

MVIEW_NAME              TO_CHAR(LAST_REFRES LAST_REF FAST_REFRESHABLE
 —————————— ——————- ——– ——————
 T1                  2016-09-30 15:55:34 FAST    DIRLOAD_DML

 SQL> select * from MLOG$_T1 order by id;    – 物化视图刷新后立刻查看主表物化视图日志信息,已经被清空

no rows selected

更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-12/138683.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2568字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中