签到成功

知道了

CNDBA社区CNDBA社区

Oracle 12C R2-新特性-物化视图:语句级刷新

2017-02-21 10:04 4551 0 原创 Oracle 12C
作者: Expect-乐

Oracle 12C R2-新特性-物化视图:语句级刷新

 

关于ON STATEMENT物化视图的刷新

使用ON STATEMENT刷新模式的物化视图将在每次对任何物化视图的基表执行DML操作时自动刷新。http://www.cndba.cn/Expect-le/article/1764

 

使用ON STATEMENT刷新模式,对基表的任何更改都将立即反映在实例化视图中。不需要在基表上提交事务或维护物化视图日志。如果随后回滚了DML语句,则还会回滚对物化视图所做的相应更改。

 

要使用ON STATEMENT刷新模式,实例化视图必须能够快速刷新。将在事实ROWID列上自动创建索引,以提高快速刷新性能。

 

事实表-fact table:包含事实数据的数据仓库的星型模式中的表。 事实表通常有两种类型的列:那些包含事实和那些作为维度表的外键的列。

 

ON STATEMENT刷新模式的优点是物化视图总是与基表中的数据同步,而没有维护物化视图日志的开销。但是,此模式可能会增加执行DML操作所需的时间,因为物化视图正在作为DML操作的一部分进行刷新。http://www.cndba.cn/Expect-le/article/1764

具体例子

2.1   创建物化视图

这个例子创建一个物化视图scott_mv_onstat,它使用ON STATEMENT刷新模式,并基于oe.deptoe.emp表。 当对任何基表执行DML操作时,物化视图将自动刷新。 在DML操作刷新实体化之后不需要提交

SQL> CREATE MATERIALIZED VIEW sales_mv_onstat

REFRESH FAST ON STATEMENT USING TRUSTED CONSTRAINT

AS

SELECT t.rowid emp_rid,s.deptno,s.dname,t.ename from dept s,emp t

where s.deptno=t.deptno;  2    3    4    5  


Materialized view created.

这里需要注意几个地方:

http://www.cndba.cn/Expect-le/article/1764

·SELECT语句必须包含真实表的ROWID,否则会报错:ORA-32428: on-statement materialized join view error: No ROWID col of fact table in MV def query

·而且ROWID要用别名,否则会报错:ORA-00904: "ROWID": invalid identifier

2.2   查看物化视图

SQL> select * from sales_mv_onstat;


EMP_RID        DEPTNO DNAME	   ENAME

------------------ ---------- ---------------------------- --------------------

AAASJ1AAMAAAACuAAA	   20 RESEARCH	   SMITH

AAASJ1AAMAAAACuAAB	   30 SALES	   ALLEN

AAASJ1AAMAAAACuAAC	   30 SALES	   WARD

AAASJ1AAMAAAACuAAD	   20 RESEARCH	   JONES

AAASJ1AAMAAAACuAAE	   30 SALES	   MARTIN

AAASJ1AAMAAAACuAAF	   30 SALES	   BLAKE

AAASJ1AAMAAAACuAAG	   10 ACCOUNTING	   CLARK

AAASJ1AAMAAAACuAAH	   10 ACCOUNTING	   KING

AAASJ1AAMAAAACuAAI	   30 SALES	   TURNER

AAASJ1AAMAAAACuAAJ	   30 SALES	   JAMES

AAASJ1AAMAAAACuAAK	   20 RESEARCH	   FORD
 

EMP_RID        DEPTNO DNAME	   ENAME

------------------ ---------- ---------------------------- --------------------

AAASJ1AAMAAAACuAAL	   10 ACCOUNTING	   MILLER


12 rows selected.

2.3   EMP表插入一条满足条件的数据

不要提交

http://www.cndba.cn/Expect-le/article/1764

SQL> insert into emp values(666,'lei','DBA',666,sysdate,666,666,20);

1 row created.

2.4   再次查看物化视图

http://www.cndba.cn/Expect-le/article/1764

http://www.cndba.cn/Expect-le/article/1764

SQL> select * from sales_mv_onstat;

EMP_RID        DEPTNO DNAME	   ENAME

------------------ ---------- ---------------------------- --------------------

AAASJ1AAMAAAACuAAA	   20 RESEARCH	   SMITH

AAASJ1AAMAAAACuAAB	   30 SALES	   ALLEN

AAASJ1AAMAAAACuAAC	   30 SALES	   WARD

AAASJ1AAMAAAACuAAD	   20 RESEARCH	   JONES

AAASJ1AAMAAAACuAAE	   30 SALES	   MARTIN

AAASJ1AAMAAAACuAAF	   30 SALES	   BLAKE

AAASJ1AAMAAAACuAAG	   10 ACCOUNTING	   CLARK

AAASJ1AAMAAAACuAAH	   10 ACCOUNTING	   KING

AAASJ1AAMAAAACuAAI	   30 SALES	   TURNER

AAASJ1AAMAAAACuAAJ	   30 SALES	   JAMES

AAASJ1AAMAAAACuAAK	   20 RESEARCH	   FORD


EMP_RID        DEPTNO DNAME	   ENAME

------------------ ---------- ---------------------------- --------------------

AAASJ1AAMAAAACuAAL	   10 ACCOUNTING	   MILLER

AAASJ1AAMAAAACuAAM	   20 RESEARCH	   lei


13 rows selected.

可以看到,在没有提交的情况下,物化视图已经刷新了。http://www.cndba.cn/Expect-le/article/1764

 http://www.cndba.cn/Expect-le/article/1764

2.5   回滚刚刚插入的数据

SQL> rollback;

Rollback complete.

--再次查看物化视图

SQL> select * from sales_mv_onstat ;

EMP_RID        DEPTNO DNAME	   ENAME

------------------ ---------- ---------------------------- --------------------

AAASJ1AAMAAAACuAAA	   20 RESEARCH	   SMITH

AAASJ1AAMAAAACuAAB	   30 SALES	   ALLEN

AAASJ1AAMAAAACuAAC	   30 SALES	   WARD

AAASJ1AAMAAAACuAAD	   20 RESEARCH	   JONES

AAASJ1AAMAAAACuAAE	   30 SALES	   MARTIN

AAASJ1AAMAAAACuAAF	   30 SALES	   BLAKE

AAASJ1AAMAAAACuAAG	   10 ACCOUNTING	   CLARK

AAASJ1AAMAAAACuAAH	   10 ACCOUNTING	   KING

AAASJ1AAMAAAACuAAI	   30 SALES	   TURNER

AAASJ1AAMAAAACuAAJ	   30 SALES	   JAMES

AAASJ1AAMAAAACuAAK	   20 RESEARCH	   FORD

EMP_RID        DEPTNO DNAME	   ENAME

------------------ ---------- ---------------------------- --------------------

AAASJ1AAMAAAACuAAL	   10 ACCOUNTING	   MILLER

12 rows selected.

http://www.cndba.cn/Expect-le/article/1764

物化视图也回滚了刚刚插入的数据。http://www.cndba.cn/Expect-le/article/1764


更多详细信息参考官方文档:

http://docs.oracle.com/database/122/DWHSG/refreshing-materialized-views.htm#DWHSG8363

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

物化视图 语句级刷新

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
Expect-乐

Expect-乐

关注

Without the continuous bitter cold, there can be no fragrant plum blossom

  • 336
    原创
  • 6
    翻译
  • 100
    转载
  • 41
    评论
  • 访问:1377905次
  • 积分:1957
  • 等级:核心会员
  • 排名:第3名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ