创建物化视图并定时refresh

当我们有报表服务器等系统,为了性能的原因很多时候会使用物化视图,为了保持mview与基表的同步,需要refresh mview.mview的refresh可以分为on commit,on demand,never几种,使用db link的mview不能采用on commit的refresh方式
通常mview根本不需要updateable,所以使用高级复制显然增加了复杂程度,所以就只剩下on demand方式了。需要调用过程dbms_mview.refresh来完成。

我们可以使用某些方式来定时refresh mview.

环境:
orcl01 (主,hostname dg1,用户schema:scott)
orcl02 (mview site,hostname dg2,用户schema:hr)

1.在orcl01上创建materialized view log (fast refresh 需要rowid)
[oracle@dg1 ~]$ sqlplus scott/scott
SQL> create MATERIALIZED VIEW LOG ON emp with rowid;
SQL> create MATERIALIZED VIEW LOG ON dept with rowid;

2.在orcl02上
[oracle@dg2 ~]$ sqlplus / as sysdba
2.1 Hr 用户的权限:
SQL> grant CREATE MATERIALIZED VIEW to hr;
SQL> select * from dba_sys_privs where grantee ='HR' ;

GRANTEE    PRIVILEGE                   ADM
---------- --------------------------- ---
HR         CREATE VIEW                 NO
HR         CREATE MATERIALIZED VIEW    NO
HR         UNLIMITED TABLESPACE        NO
HR         CREATE DATABASE LINK        NO
HR         CREATE SEQUENCE             NO
HR         CREATE SESSION              NO
HR         AL

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值