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

简介:
所有类型的快速刷新物化视图都必须满足的条件:
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 
相关文章
|
程序员 编译器 C语言
【c语言】c语言转义字符详解
【c语言】c语言转义字符详解
1333 1
|
开发工具 Android开发 开发者
|
机器学习/深度学习 并行计算 Linux
环境安装(二):不同平台皆可安装Paddle
这篇文章介绍了如何在不同操作系统平台上安装PaddlePaddle,包括Windows和Linux,以及如何使用Paddle Lite在AMD64和ARM架构上部署模型,并提供了官方安装命令和进一步学习资源。
959 0
|
9月前
|
监控 搜索推荐 数据挖掘
销售全流程管理:CRM 行业的线索到商机转化秘籍
在当今竞争激烈的商业环境中,CRM行业正经历深刻变革。企业要脱颖而出,需提升销售全流程管理效率,尤其是从线索到商机的全流程管理和数字化运营。通过线索评估、重点跟进和商机转化等环节精细化管理,结合自动化线索分配、实时数据监控及数据分析预测等数字化工具,企业能显著提高销售效率与业绩,实现持续增长,在市场中立于不败之地。
|
12月前
|
PHP
20241125易支付PHP网站源码
PHP74,上传源码后解压访问域名/install 进行安装 安装完成 之后一定要设置伪静态 源码里面nginx.txt 就是伪静态 然后复制粘贴到伪静态里面保存即可
329 2
|
Kubernetes Cloud Native API
掌握Dapr:构建可移植的微服务应用
【10月更文挑战第8天】Dapr(Distributed Application Runtime)是一个开放、可移植的运行时环境,旨在简化微服务应用的构建。它通过提供一套API处理服务发现、状态管理、发布/订阅等常见问题,帮助开发者专注于业务逻辑。本文介绍Dapr的基本概念、核心组件、优势及实施步骤,适用于希望构建弹性、可扩展微服务应用的开发者。
|
机器学习/深度学习 人工智能 算法
软件测试中的人工智能应用与前景
随着技术的不断进步,人工智能(AI)在软件测试中的应用越来越广泛。本文将探讨AI在软件测试中的具体应用,包括自动化测试、缺陷预测及测试用例生成等方面的内容。同时,我们将讨论AI在软件测试中的优势和挑战,并展望未来的发展趋势。
|
网络协议 算法 安全
【网络协议基础】TCP/IP协议大全
TCP/IP协议是现代计算机网络通信的基础,是互联网及局域网广泛使用的一套协议。TCP/IP协议集采用分层模型,以便于网络的设计、实现和管理。
939 2
|
机器学习/深度学习 TensorFlow 算法框架/工具
深度学习中的图像分类:从理论到实践
【8月更文挑战第31天】 本文将带你深入了解深度学习在图像分类领域的应用。我们将从理论基础出发,逐步过渡到实际的代码实现,让你能够亲手构建一个简单的图像分类模型。无论你是初学者还是有一定基础的开发者,都能从中获得启发和收获。
|
搜索推荐 Linux Shell
在Linux中,如何创建一个新用户?
在Linux中,如何创建一个新用户?

热门文章

最新文章