刷新物化视图很慢_【物化视图】速刷新物化视图都必须满足的条件-阿里云开发者社区...

【物化视图】速刷新物化视图都必须满足的条件

北在南方

2016-04-14

1619浏览量

简介:

所有类型的快速刷新物化视图都必须满足的条件:

1.物化视图不能包含对不重复表达式的引用,如SYSDATE和ROWNUM;

2.物化视图不能包含对LONG和LONG RAW数据类型的引用。但是从测试环境上看支持对raw类型的引用。

1.不能包括GROUP BY语句或聚集操作;

yang@rac1>create materialized view mv_yang_err refresh fast on commit with rowid

2  as select id ,count(1)  from yang_a group by id;

as select id ,count(1)  from yang_a group by id

*

第 2 行出现错误:

ORA-32401: "YANG"."YANG_A" 上的实体化视图日志没有新值

yang@rac1>create materialized view mv_yang_pk refresh fast on commit

2  as select id ,count(1) from yang_pk group by id;

as select id ,count(1) from yang_pk group by id

*

ERROR at line 2:

ORA-32401: materialized view log on "YANG"."YANG_PK" does not have new values

2.如果在WHERE语句中包含外连接,那么唯一约束必须存在于连接中内表的连接列上:

yang@rac1>drop materialized view mv_fact_err;

Materialized view dropped.

yang@rac1>alter table fact drop constraint fact_fk_aid;

Table altered.

yang@rac1>alter table yang_a drop primary key ;

Table altered.

yang@rac1>create materialized view mv_fact_err refresh fast on commit as

2    select f.rowid frid,a.rowid arid,b.rowid brid,f.id,

3    a.name aname,b.name bname ,val

4    from fact f ,yang_a a,yang_b b

5    where f.aid=a.id(+)

6    and f.bid=b.id;

Materialized view created.

物化视图可以被建立,看来条件不成立。

3.如果不包含外连接,那么WHERE语句没有限制,如果包含外连接,那么WHERE语句中只能使用AND连接,并且只能使用“=”操作:

yang@rac1>create materialized view mv_fact_err refresh fast on commit as

2    select f.rowid frid,a.rowid arid,b.rowid brid,f.id,

3    a.name aname,b.name bname ,val

4    from fact f ,yang_a a,yang_b b

5    where f.aid=a.id(+)

6    and f.bid != b.id;

Materialized view created.

此条件不成立。

4.FROM语句列表中所有表的ROWID必须出现在SELECT语句的列表中:

yang@rac1>create materialized view mv_fact_err refresh fast on commit as

2    select b.rowid brid,f.id,

3    a.name aname,b.name bname ,val

4    from fact f ,yang_a a,yang_b b

5    where f.aid=a.id(+)

6    and f.bid != b.id;

from fact f ,yang_a a,yang_b b

*

ERROR at line 4:

ORA-12052: cannot fast refresh materialized view YANG.MV_FACT_ERR

5.FROM语句列表中的所有表必须建立基于ROWID类型的物化视图日志。

yang@rac1>create materialized view mv_fact_err refresh fast on commit as

2    select b.rowid brid,f.id,

3    a.name aname,b.name bname ,val

4    from fact f ,yang_a a,yang_b b

5    where f.aid=a.id(+)

6    and f.bid != b.id;

from fact f ,yang_a a,yang_b b

*

ERROR at line 4:

ORA-12052: cannot fast refresh materialized view YANG.MV_FACT_ERR

测试技术

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中提到的代码是一个使用Java模块化系统构建MVC应用程序的例子,但是它没有展示如何将用户输入的信息更新到模型层以及如何在视图层中显示更新后的结果。这些操作需要通过控制器来完成。因此,在实际开发中,你需要添加相应的控制器来处理这些操作。 关于你提到的"tweenjs定位后视图卡死"的问题,我没有找到具体的相关引用内容来回答这个问题。不过,一般来说,当使用Tween.js来进行动画效果时,如果定位问题导致视图卡死,可能是因为Tween.js正在执行的动画操作与其他操作发生了冲突或者存在一些性能问题。 要解决这个问题,你可以尝试以下几个方法: 1. 检查代码逻辑:确保你使用Tween.js时,没有在同一时间执行多个冲突的动画操作,或者没有在动画过程中频繁地改变定位属性。 2. 优化性能:如果你的应用程序中使用了大量的Tween.js动画效果,可以考虑对性能进行优化,例如减少动画的数量、降低动画的帧率或者使用硬件加等方法。 3. 调试工具:使用浏览器的开发者工具来检查代码的执行情况,查看是否有任何错误或警告信息,并根据需要进行调整。 希望以上建议对解决你的问题有所帮助。如果你有更多的具体信息或问题,请提供更多的上下文,我将尽力为你提供更准确的答案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [oracle 删除物化视图卡死](https://blog.csdn.net/lyl117363/article/details/103512120)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [使用Java模块化系统构建MVC应用程序.txt](https://download.csdn.net/download/weixin_44609920/88226704)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值