ORACLE物化视图--物化视图的快速刷新

Oracle物化视图刷新和物化视图日志 Oracle的物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。 测试物化视图的刷新,参考物化视图日志,一个源表对应多个物化视图刷新。 物化视图是实体表,是物理真实存在的(与View区别),占用存储空间的,可以创建索引,可以使用分区表。 阅读详情

带UNION ALL物化视图的快速刷新

1.   定义的查询的union all操作必须在最顶等级(查询重写后)

2.   物化视图日志指定rowid和including new values

3.   如果表设涉及到一个大量的insert或者直接路径加载,deletes,update,指定sequencea

4.   from列表中所有表的rowid必须出现在select子句中

5.   select列中必须包括一个维护列,被称为union all marker

6.   远端数据库的表不支持union all

7.   不支持聚集操作,因为没有rowid

 

CREATETABLEtest1ASSELECT*FROMdba_objects;

CREATETABLEtest2ASSELECT*FROMdba_objects;

CREATETABLEtest3ASSELECT*FROMdba_objects;

 

CREATEMATERIALIZEDVIEWLOGONCTAIS2.TEST1WITHROWID,SEQUENCEINCLUDINGNEWVALUES;

CREATEMATERIALIZEDVIEWLOGONCTAIS2.TEST2WITHROWID,SEQUENCEINCLUDINGNEWVALUES;

CREATEMATERIALIZEDVIEWLOGONCTAIS2.TEST3WITHROWID,SEQUENCEINCLUDINGNEWVALUES;

 

CREATEMATERIALIZEDVIEWmv_test_union_all

REFRESHFASTONDEMANDWITHROWID

AS

SELECTowner, object_name, subobject_name, object_id, data_object_id, object_type, created, last_ddl_time,TIMESTAMP, status,TEMPORARY,GENERATED, secondary,1marker,ROWIDrdFROMtest1

UNIONALL

SELECTowner, object_name, subobject_name, object_id, data_object_id, object_type, created, last_ddl_time,TIMESTAMP, status,TEMPORARY,GENERATED, secondary,2marker,ROWIDrdFROMtest2

UNIONALL

SELECTowner, object_name, subobject_name, object_id, data_object_id, object_type, created, last_ddl_time,TIMESTAMP, status,TEMPORARY,GENERATED, secondary,3marker,ROWIDrdFROMtest3

 

带聚集物化视图的快速刷新

1.   物化视图日志指定rowid和including new values

2.   如果表设涉及到一个大量的insert或者直接路径加载,deletes,update,指定sequence

3.   支持的函数sum,count,avg,stddev,variance,min,max

4.   必须指定count(*)

5.   如果使用stddev,variance,那么count和sum必须指定。ORACLE推荐同时指定sum(expr*expr)

6.   select中的列不能有来自多个表的复杂的表达式。代替方法是使用嵌套物化视图

7.   select列必须包含所有的group的列

8.   如果包含min,max,没有count,那么将只支持insert和直接路径加载

9.   如果物化视图有cube,rollup,grouping sets,那么有如下限制

a)   select列中必须包含grouping_id

b)   不支持复杂的grouping,如group by a,rollup(a,b)

 

DROPMATERIALIZEDVIEWLOGONCTAIS2.TEST1;

DROPMATERIALIZEDVIEWLOGONCTAIS2.TEST2;

DROPMATERIALIZEDVIEWLOGONCTAIS2.TEST3;

 

--必须有SQL中的所有列

CREATEMATERIALIZEDVIEWLOGONCTAIS2.TEST1WITHSEQUENCE,ROWID

      (object_type,object_id,data_object_id) 

INCLUDINGNEWVALUES;

 

CREATEMATERIALIZEDVIEWmv_test_aggr

REFRESHFASTONDEMANDWITHROWID

ENABLEQUERYRewrite

AS

SELECTobject_type,max(object_id) max_object_id,min(data_object_id) min_data_obj_id,COUNT(*) count_cFROMtest1GROUPBYobject_type

 

BEGIN

 dbms_mview.refresh('MV_TEST_AGGR','F');

END;

/

 

DROPMATERIALIZEDVIEWmv_test_aggr;

 

多表连接的物化视图的快速刷新

1.   from列表中所有表的rowid必须出现在select子句中

2.   基表必须有mview log

 

CREATEMATERIALIZEDVIEWLOGONCTAIS2.TEST2WITHROWID;

CREATEMATERIALIZEDVIEWLOGONCTAIS2.TEST3WITHROWID;

 

CREATEMATERIALIZEDVIEWmv_test_join

REFRESHFASTONDEMANDWITHROWID

ENABLEQUERYRewrite

AS

SELECTtest2.object_name,test3.status ,test2.rowid t2rowid,test3.rowid t3rowidFROMtest2,test3WHEREtest2.object_id = test3.object_id

 

聚集+连接的物化视图的快速刷新

1.   如果物化视图不带where子句,那么max,min将支持DML的快速刷新

2.   如果查询的FROM中有一个视图或者子查询,那么能快速刷新的条件是该视图或者查询能被merge

3.   如果没有外连接,那么在where中可以随意的选择和连接

4.   如果有外连接,那么只有在外表被修改才行。但是,唯一约束必须在内表的连接列上存在。而且,连接的条件必须是=而且必须是and连接的

 

DROPMATERIALIZEDVIEWLOGONCTAIS2.TEST2;

DROPMATERIALIZEDVIEWLOGONCTAIS2.TEST3;

 

CREATEMATERIALIZEDVIEWLOGONCTAIS2.TEST2WITHSEQUENCE,ROWID(object_name,object_id)INCLUDINGNEWVALUES;

CREATEMATERIALIZEDVIEWLOGONCTAIS2.TEST3WITHSEQUENCE,ROWID(status,object_id)INCLUDINGNEWVALUES;

 

CREATEMATERIALIZEDVIEWmv_test_join

REFRESHFASTONDEMANDWITHROWID

ENABLEQUERYRewrite

AS

SELECTTEST2.OBJECT_NAME, TEST3.STATUS,COUNT(*)

      FROMTEST2, TEST3

 WHERETEST2.OBJECT_ID = TEST3.OBJECT_ID

 GROUPBYTEST2.OBJECT_NAME, TEST3.STATUS


Oracle 如何根据物化视图日志快速刷新物化视图 (不积跬步,无以至千里) Oracle物化视图的快速刷新机制是通过物化视图日志完成的。Oracle如何通过一个物化视图日志就可以支持多个物化视图的快速刷新呢,本文简单的描述一下刷新的原理。 首先,看一下物化视图的结构: SQL> create table t (id number, name varchar2(30), num number); 表已创建。 SQL> create materiali 阅读详情

相关推荐

Fastjson2升级指南:如何平滑迁移并避免兼容性问题

本文详细介绍了Fastjson2的升级指南,涵盖兼容性检查、性能调优及零停机迁移方案。通过实战案例展示如何避免常见问题,如日期格式严格校验和字段映射策略变化,并分享高性能配置技巧如JSONB二进制协议和内存池化。帮助开发者平滑迁移至Fastjson2,提升JSON处理效率。

weixin_29016865的博客 410

Oracle物化视图的刷新

物化视图(MATERIALIZED VIEW)是一个包含查询结果的数据库对象。将经常使用的数据拷贝并存储下来,在查询时就可以直接返回数据。本质上是一个物理表,会占用磁盘空间。本文主要记录了物化视图刷新的方法、时机等相关特性。

theVicTory的博客 8761

从FinFET到NanoSheet:一文看懂TSMC制程技术的架构革命与性能飞跃

本文深入解析了TSMC从FinFET到NanoSheet的制程技术架构革命。FinFET通过三维立体结构解决了短沟道效应,而NanoSheet采用环绕栅极设计,实现了更强的静电控制与设计灵活性,结合EUV光刻技术,共同推动了芯片性能与能效的飞跃,为下一代AI与高性能计算奠定基石。

i3j4k5的博客 288

oracle物化视图没有更新,Oracle物化视图日志与快速刷新说明

一.物化视图日志格式说明Oracle 物化视图说明Oracle 的物化视图的快速刷新要求必须建立物化视图日志,通过物化视图日志可以实现增量刷新功能。官网的说明如下:A materializedview log is required on a master to perform a fast refresh on materializedviews based on the master. Whe...

weixin_42474220的博客 1502

多雷达协同探测技术研究进展:认知跟踪与资源调度算法

源自:雷达学报作者:易伟 袁野 刘光宏 葛建军 孔令讲 杨建宇雷达是信息感知的千里眼,具有极高的军用和民用价值,广泛应用在防空预警、遥感测绘、反恐维稳等领域[1–5]。雷达信息获取与探测技术也一直是大国竞相抢占的前沿技术,同时是信息科学的重要组成部分。随着科学技术不断进步,先进电子对抗装备的不断问世和广泛列装,雷达的生存与发展正面临日益严峻的挑战。从生存环境上看,雷达面临通信等各类民用电磁干扰以及复杂的军用电磁干扰;从探测对象上看,集群、微弱、隐身、高空、低空等多样化目标的出现也给雷达探测与识别带来困难。

renhongxia1的博客 2782

深度学习赋能胶囊内镜:AI如何实现胃肠道出血的自动检测与分割

在计算机视觉领域,图像分类与目标检测是处理医学影像分析的核心技术。其原理在于通过卷积神经网络(CNN)自动学习图像中的多层次特征表示,实现对特定目标的识别与定位。这项技术的价值在于能够将医生从海量、重复的阅片工作中解放出来,提升诊断效率与一致性,尤其在处理如胶囊内镜产生的数万张连续图像时优势显著。其应用场景广泛覆盖了医学影像的辅助诊断,例如在消化内科,对胃肠道出血的早期发现与精准定位具有重要临床意义。本文聚焦于利用深度学习模型,如U-Net和EfficientNet,构建一个能够从复杂多变的胶囊内镜图像中,

weixin_42533910的博客 378

优化Oracle数据库性能:物化视图的自动与手动刷新策略

本文介绍了如何在Oracle数据库中使用物化视图(Materialized Views)来优化查询性能。物化视图通过预计算并存储查询结果,可以显著加快复杂查询的执行速度。文章详细讲解了如何创建物化视图,并设置自动刷新策略以确保数据的实时性。此外,还提供了手动刷新物化视图的方法。通过合理配置自动与手动刷新策略,可以在提升性能的同时确保数据的准确性。

七一 3564

AI 自动生成商业计划书:AIGC 如何助力创业者?

在创业的早期阶段,商业计划书(Business Plan)是至关重要的。它不仅用于吸引投资者、明确发展路径,还能帮助团队对业务模式、市场定位和财务预测有清晰认知。然而,撰写一份高质量的商业计划书往往需要投入大量时间和精力。如今,AIGC(AI Generated Content,人工智能生成内容)技术正在改变这一现状。借助 AIGC,创业者可以更快速、高效地创建商业计划书,并通过 AI 进行优化和数据分析。

2401_82808034的博客 3780

Oracle: 物化视图刷新&&查询表空间内存剩余

Oracle:物化视图刷新&&表空间内存剩余

m0_46199467的博客 1176

数据库系统概论第五版课后习题答案第十二章

对元组的插入、删除、修改;语义检查的具体做法是,DBMS读取数据字典,检查是否存在与该语句中的表、视图或索引等要创建的对象相同的对象名,检查该用户是否具有创建数据库对象的权限。答:操作系统提供的封锁机制和DBMS的封锁机制在封锁对象、封锁对象的状态、封锁的粒度、及封锁的类型上存在很大的差别,操作系统的封锁机制不能直接应用在DBMS中,DBMS必须重新设计,来满足复杂的封锁需求。数据库的建立和维护包括数据库的初始建立、数据的转换、数据库的转储和恢复、数据库的重组织和重构造以及性能监测分析等功能。

wenling54321的博客 693

假新闻检测论文分享(30)MMDFND: Multi-modal Multi-Domain Fake News Detection

现有的假新闻检测方法通常集中在单一领域的新闻上,如健康或政治。然而,社交媒体上的新闻往往来自多个领域,这给单一领域的假新闻检测方法带来了两个主要挑战:数据稀缺性:处理较小、单一领域的新闻数据集时,由于训练数据的稀缺,模型的有效性显著下降。跨领域检测的准确性下降:单一领域的假新闻检测方法在跨领域新闻数据集上的准确性大幅降低。缓解领域间模态语义偏差:通过DPLE网络提取跨领域和领域特定的知识,缓解了不同领域间文本和图像的语义差异。

weixin_41964296的博客 668

【ORACLE】物化视图快速刷新限制条件

快速刷新的物化视图创建比较麻烦,限制条件比较多,本文参考Oracle 11g 11.2版本官方文档,总结一般情况、含有联接、含有聚合计算、UNION ALL等情况下的限制条件。

#include 4387

Unity Sprite Atlas C++底层原理全解析 —— “像素聚合工厂”的秘密

Unity Sprite Atlas C++底层实现简析 Sprite Atlas是Unity中用于优化2D渲染性能的核心机制,其C++底层实现如同一个高效的"像素聚合工厂"。该系统通过将多个小纹理合并为一个大纹理,显著减少Draw Call次数和GPU纹理切换开销。 在数据结构上,底层采用SpriteAtlasData存储图集元数据,PackedTexture管理合并后的大纹理,SpriteFrame记录每个子精灵的位置信息,并通过哈希表实现快速查找。编辑器阶段使用最大矩形等算法优化空

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 204

Oracle如何根据物化视图日志快速刷新物化视图

 转自:http://yangtingkun.itpub.net/post/468/20584Oracle物化视图的快速刷新机制是通过物化视图日志完成的。Oracle如何通过一个物化视图日志就可以支持多个物化视图的快速刷新呢,本文简单的描述一下刷新的原理。 首先,看一下物化视图的结构:SQL> create table t (id number, name varchar2(3

随想,随记 1832

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Oracle 物化视图的快速刷新与物化视图日志详细介绍

Oracle 物化视图的快速刷新与物化视图日志详细介绍

chenoracle的博客 1328

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

oracle如何根据物化视图日志快速刷新物化视图:,Oracle如何根據物化視圖日志快速刷新物化視圖...

Oracle物化視圖的快速刷新機制是通過物化視圖日志完成的。Oracle如何通過一個物化視圖日志就可以支持多個物化視圖的快速刷新呢,本文簡單的描述一下刷新的原理。首先,看一下物化視圖的結構:SQL> create table t(id number, name varchar2(30), num number);表已創建。SQL> create materialized view lo...

weixin_31630721的博客 263

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

oracle如何根据物化视图日志快速刷新物化视图:,Oracle数据库入门——如何根据物化视图日志快速刷新物化视图...

Oracle物化视图的快速刷新机制是经过物化视图日志完成的。Oracle如何经过一个物化视图日志就能够支持多个物化视图的快速刷新呢,本文简单的描述一下刷新的原理。post首先,看一下物化视图的结构:SQL> create table t(id number, name varchar2(30), num number);表已建立。.netSQL> create materialized...

weixin_39980082的博客 437

Oracle 物化视图快速刷新限制说明

 http://blog.itpub.net/22990797/viewspace-752142/ 在老杨的Blog 看到一些列的说明,整理并转载过来,原文链接如下:   物化视图的快速刷新(一) http://yangtingkun.itpub.net/post/468/14245   物化视图的快速刷新(二) http://yangtingk

阿狸兔的另一个世界 2154

oracle 物化视图 大小限制,Oracle 物化视图 快速刷新 限制 说明

之前对物化视图整理的一篇介绍:在老杨的Blog 看到一些列的说明,整理并转载过来,原文链接如下:物化视图的快速刷新(一)https://www.cndba.cn/Dave/article/1092物化视图的快速刷新(二)物化视图有三种刷新方式:COMPLETE、FAST和FORCE:(1)完全刷新(COMPLETE)会删除表中所有的记录(如果是单表刷新,可能会采用TRUNCATE的方式),然后根据...

weixin_36079387的博客 596

oracle 物化视图 大小限制,Oracle 物化视图快速刷新限制说明

在老杨的Blog 看到一些列的说明,整理并转载过来,原文链接如下:物化视图的快速刷新(一)物化视图的快速刷新(二)物化视图的快速刷新(三)物化视图有三种刷新方式:COMPLETE、FAST和FORCE:(1)完全刷新(COMPLETE)会删除表中所有的记录(如果是单表刷新,可能会采用TRUNCATE的方式),然后根据物化视图中查询语句的定义重新生成物化视图。(2)快速刷新(FAST)采用增量刷...

weixin_33426866的博客 355

Oracle 物化视图1 - 单表聚合及其快速刷新

简介 物化视图在数据仓库中常用,将结果预先计算好并存储在物化视图中,Oracle数据库通过Query Rewrite访问物化视图。可以提高SQL反应速度,改善用户体验。整个过程对用户是透明的。对于每个物化视图,Oracle会自动建立一个同名表来存储物化视图的数据。 物化视图支持两种刷新方式: Fast Refresh Complete Refresh. Fast refres

chncaesar的专栏 2356

Oracle 物化视图日志 与 快速刷新 说明

一.物化视图日志格式说明 Oracle 物化视图说明http://blog.youkuaiyun.com/tianlesoftware/article/details/4713553 Oracle 物化视图 详细错误描述 查看方法http://blog.youkuaiyun.com/tianlesoftware/article/details/7719789 Oracle 物化视图 快速刷新 限制 说明http://bl

David Dai -- Focus on Oracle 3万+
上一篇: [转]:bitmap索引和B*tree索引分析
下一篇: ORACLE物化视图--实体化试图(Materialized View)介绍
outget1
博客等级 码龄19年 110粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值