物化视图快速刷新的一个问题

Android 12高通thermal-engine调试实战:如何快速开启debug日志并解决CPU降频问题 本文详细介绍了Android 12高通thermal-engine的调试实战,包括如何快速开启debug日志、解读关键日志信息以及解决CPU降频问题。通过优化配置文件和调整温控策略,开发者可以有效提升设备性能,避免因温度管理导致的性能瓶颈。 阅读详情

在OraFAQ上看到一个关于物化视图快速刷新的问题,由于同一个mv log被多个物化视图使用,不同的物化视图使用不同的刷新间隔,导致mv log中记录过多而使得快速刷新变得缓慢。

下面通过一个实际的例子来演示这种情况:

创建测试表

NING@ning>create table master as select * from all_objects where object_id<100;
Table created.
NING@ning>alter table master add primary key(object_id);
Table altered.

创建mv log

NING@ning>create materialized view log on master with primary key;
Materialized view log created.

创建第一个mv,on commit刷新

NING@ning>create materialized view mv_commit
2 refresh fast
3 on commit
4 as
5 select object_id,object_type,object_name
6 from master;
Materialized view created.

创建第二个mv,on demand刷新

NING@ning>create materialized view mv_demand
2 refresh fast
3 on demand
4 as
5 select object_id,LAST_DDL_TIME,STATUS
6 from master;
Materialized view created.

查看目前mv和mv log中的数据量

NING@ning>select count(*) from mv_commit;
COUNT(*)
----------
        98
NING@ning>select count(*) from mv_demand;
COUNT(*)
----------
        98
NING@ning>select count(*) from MLOG$_MASTER;
COUNT(*)
----------
         0

往master表插入新的记录并commit

NING@ning>insert into master select * from all_objects where object_id>=100 and object_id<200;
99 rows created.
NING@ning>commit;
Commit complete.

查看mv和mv log中的数据量

NING@ning>select count(*) from mv_commit;
COUNT(*)
----------
       197
NING@ning>select count(*) from mv_demand;
COUNT(*)
----------
        98
NING@ning>select count(*) from mlog$_master;
COUNT(*)
----------
        99

往master表插入新的记录并commit

NING@ning>insert into master select * from all_objects where object_id>=200 and object_id<300;
82 rows created.
NING@ning>commit;
Commit complete.

查看mv和mv log中的数据量

NING@ning>select count(*) from mv_commit;
COUNT(*)
----------
       279
NING@ning>select count(*) from mv_demand;
COUNT(*)
----------
        98
NING@ning>select count(*) from mlog$_master;
COUNT(*)
----------
       181

可以看到,随着master不停的插入新的数据,mv_commit不停的被刷新,但是mv log中的记录了却没有在mv_commit刷新后清空,而是不停的增长。这是由于mv log中的数据对于mv_demand来说还是必须的,这样就导致mv_commit的刷新会越来越慢,因为快速刷新每次都是根据mv log中的记录来执行刷新的。

手动刷新一次mv_demand,可以发现mv log中的记录被清空了

NING@ning>exec dbms_mview.refresh('MV_DEMAND','F');
PL/SQL procedure successfully completed.
NING@ning>select count(*) from mv_demand;
COUNT(*)
----------
       279
NING@ning>select count(*) from mlog$_master;
COUNT(*)
----------
         0

查看一个master表上有多少个mv及其最新刷新时间

NING@ning>SELECT owner, NAME, snapshot_site, TO_CHAR(current_snapshots,'mm/dd/yyyy hh24:mi') current_snapshots
2 FROM dba_registered_snapshots, dba_snapshot_logs
3 WHERE dba_registered_snapshots.snapshot_id = dba_snapshot_logs.snapshot_id (+)
4 AND dba_snapshot_logs.MASTER=upper('&table_name');
Enter value for table_name: master
old 4: AND dba_snapshot_logs.MASTER=upper('&table_name')
new 4: AND dba_snapshot_logs.MASTER=upper('master')
OWNER NAME SNAPSHOT_S CURRENT_SNAPSHOTS
---------- -------------------- ---------- --------------------
NING MV_COMMIT NING 07/16/2007 10:24
NING MV_DEMAND NING 07/16/2007 10:28

--EOF--

Kalibr 安装+制作采集的图片和IMU数据生成 .bag 文件 (坑最全,解决方法最简单,最详细哈哈) 方法一、Kalibr标定工具实现 开源代码连接:https://github.com/ethz-asl/kalibr 1.1 创建工作空间 ——下载程序——编译 mkdir -p ~/kalibr_workspace/src cd /kalibr_workspace/src git clone https://github.com/ethz-asl/Kalibr.git cd .. //返回上一级 catkin_make source devel/setup.bash ...... 阅读详情

相关推荐

瑞芯微RK3576上手实测:8nm新U配6TOPS NPU,做AIoT项目选它还是RK3588/RK3568?

本文深度评测瑞芯微RK3576芯片在中高端AIoT项目中的表现,对比RK3588和RK3568的性能差异。RK3576采用8nm工艺,配备6TOPS NPU,在解码能力、AI推理效率和功耗控制方面表现均衡,是中端项目的黄金选择。实测数据显示其在多路视频解码和AI加速性能上优势明显,特别适合智能摄像头和工业HMI设备。

weixin_42627853的博客 716

物化视图的快速刷新(二)

物化视图的快速刷新(二) =========================================================== 作者: yangtingkun(http://yangtingkun.itpub.net)发表于: 2005.01.28 17:23分类: ORACLE 出处: http://yangtingkun.itpub.net/post/468/1645

chedaxia的专栏 1622

浅析MOS管导通过程及RC吸收电路设计要点

RC吸收电路 米勒电容 MOS导通过程

liangbo1999的博客 2万+

浅析为何Oracle物化视图对distinct, group by不支持快速刷新

问题描述:我们知道distinct,group by不能用于物化视图的快速刷新,而 group by + count 就可以,下面通过简单例子分析一下原因。 实验场景:Oracle 10 / OracleLinux ...

583

药物重定位实战:如何用反向找靶技术挖掘老药新用(附Python代码示例)

本文详细介绍了药物重定位中的反向找靶技术,通过分子相似性计算、机器学习模型和结构对接等方法,挖掘已有药物的新治疗潜力。附Python代码示例,帮助读者快速实现从分子结构到潜在靶标的智能预测,显著提升药物研发效率。

weixin_28726671的博客 259

LCZ数据下载及处理-以重庆市为例(完整Python代码)

LCZ数据下载及处理-以重庆市为例(完整Python代码)

WW、forever的博客 611

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万+

华为od统一考试B卷【单词搜索】C++ 实现

找到它是一个小游戏,你需要在一个矩阵中找到给定的单词。假设给定单词 HELLOWORD,在矩阵中只要能找到 H->E->L->L->O->W->O->R->L->D连成的单词,就算通过。意区分英文字母大小写,并且您只能上下左右行走,不能走回头路。

MISAYAONE的博客 709

刷新物化视图很慢_oracle – 物化视图创建速度快但刷新需要数小时

我正在使用物化视图,我无法将其设置为快速刷新,因为某些表来自远程数据库,它没有物化视图日志.当我创建物化视图时,花费了大约20 30秒.但是当我试图刷新它时.花了超过2个3小时.记录总数仅为460,000左右.有没有人知道它会如何发生?谢谢代码如下所示create materialized view MY_MV1refresh force on demandstart with to_date('...

weixin_29503445的博客 1275

Multisim14使用教程详尽版--(2025最新版)

摘要:本文详细介绍了Multisim14电路仿真软件的功能和使用方法。主要内容包括:1)主流电路仿真软件比较,突出Multisim在教学、竞赛设计中的优势;2)软件界面说明,涵盖菜单栏、工具栏、元器件库和仪器仪表;3)18类元器件分类详解及其使用操作;4)15种仪器仪表的原理和应用场景;5)电路原理图设计与仿真流程;6)基本电路分析方法(直流静态工作点分析、交流分析等)。文章还提供了硬件工程师笔试面试相关资源链接,涵盖电阻、电容、三极管等器件知识及AD软件操作指南。通过系统讲解,帮助用户掌握Multisim

XU157303764的博客 2万+

华为od 面试八股文_C++_02_含答案

华为od 面试八股文_C++_02_含答案

MISAYAONE的博客 3121

2021-06-29

Oracle物化视图之踩雷经验 由于这边的系统原因及元数据原因,同步数据都是通过物化视图的方式来执行的。因为数据不是特别的大,每天也就几十万的数据,而且数据到我们系统已经是很干净的,不必要在次的进行清洗,所以每天通过物化视图刷新数据是没有什么问题。 问题在于有一天新建物化视图,发现物化视图的创建SQL处理一直执行中的状态,无法执行成功。后来查了一下表的数据量,发现有一个多亿,就怀疑是数据量太大所以导致物化视图无法创建,其实物化视图创建就是一秒钟的事,但是当时想不到别的原因。数据又比较紧急,直接创

weixin_47370966的博客 548

innovus:Clock Gating Check设置与报告

看图后发现,在设置clock gating check之前报告也会有clock gating check的值,这个就是因为timing library中会像reg一样定 library setup time值,如下图。我们常用set_clock_gating_check -setup去过约束Place阶段reg2cgate的时序,以防CTS后由于tree不平导致的时序违例。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1011

一个物化视图快速刷新的问题

今天帮人解决了一个物化视图快速刷新的问题,简单记录一下解决方法。问题倒是不复杂,就是一个普通的聚集物化视图的快速刷新问题,下面通过一个例子模拟一下:SQL> CREATE TABLE T AS SELECT * FROM ...

ckawt40802的专栏 216

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

oracle物化视图主键快速刷新,物化视图快速刷新与ORA-00001

今天上班收到告警邮件,是一个定时刷新物化视图的job引起的错误:ORA-00001: unique constraint (NDMAIN.I_GPO_USR_USER_IDXU_CODE) violated检查两边约束,发现完全一致,经过10046跟踪,发现根本原因。下面举例重现错误:SQL> create table test(id int,code varchar2(10));Table...

weixin_29964487的博客 529

精雕软件(JDpaint) 5.5 绿色版

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

定位物化视图快速刷新失败的原因

 物化视图的快速刷新采用了增量的机制,在刷新时,只针对基表上发生变化的数据进行刷新。因此快速刷新是物化视图刷新方式的首选。 但是快速刷新具有较多的约束,而且对于采用ON COMMIT模式进行快速刷新的物化视图更是如此。对于包含聚集和包含连接的物化视图的快速刷新机制并不相同,而且对于多层嵌套的物化视图的快速刷新更是有额外的要求。 如此多的限制一般很难记全,当建立物化视图失败时,Oracle

阿狸兔的另一个世界 1956

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

oracle 12015,ORA-12015:无法从复杂查询创建快速刷新物化视图

我使用下面的查询来构建物化视图 .CREATE MATERIALIZED VIEW gcms_business_profile_mviewBUILD IMMEDIATEREFRESH FASTWITH PRIMARY KEYSTART WITH SYSDATENEXT (TRUNC (SYSDATE + 1) + 20 / 96)ASSELECT DISTINCT obp.bp_id,obp.bp...

weixin_35076990的博客 578

ORACLE物化视图--定位导致物化视图无法快速刷新的原因

物化视图的快速刷新采用了增量的机制,在刷新时,只针对基表上发生变化的数据进行刷新。因此快速刷新是物化视图刷新方式的首选。 但是快速刷新具有较多的约束,而且对于采用ON COMMIT模式进行快速刷新的物化视图更是如此。对于包含聚集和包含连接的物化视图的快速刷新机制并不相同,而且对于多层嵌套的物化视图的快速刷新更是有额外的要求。 如此多的限制一般很难记全,当建立物化视图失败时,Or

oracel数据库、数据仓库、JAVA开发的专栏 2145

定位导致物化视图无法快速刷新的原因

物化视图的快速刷新采用了增量的机制,在刷新时,只针对基表上发生变化的数据进行刷新。因此快速刷新是物化视图刷新方式的首选。 但是快速刷新具有较多的约束,而且对于采用ON COMMIT模式进行快速刷新的物化视图更是如此。...

cru61340的博客 399

ZT 定位导致物化视图无法快速刷新的原因

作者: yangtingkun(http://yangtingkun.itpub.net)发表于: 2005.01.09 22:37分类: ORACLE 出处: http://yangtingkun.itpub.net/post...

csdn_201601的博客 115

oracle materialized view 不刷新,materialized view 刷新非常慢!急,急

建立 materialized log 如下:create materialized view log on request with rowid;create materialized view log on product with rowid;create materialized view log on active_request_leg_map with rowid;create ma...

weixin_39846089的博客 417

oracle写一个全量刷新,Oracle物化视图定时全量刷新导致归档日志骤增

一、问题描述某项目组来电,说有一个源表约2万多条的物化视图,每5分钟定时全量(Complete)刷新一次,一天下来,导致Oracle数据库归档日志骤增。二、问题分析及解决先明确一个问题:归档日志(Archive Log)和重做日志(REDOLog)的关系。Oracle的重做日志是一组(或几组)文件,按一定的规则顺序循环写,当重做日志写满后,从头开始写之前,如果数据库在归档模式(Archive),则...

weixin_32158567的博客 457

物化视图的2个疑惑-终于解决了

2011-12-7 疑惑1:本来跑的好好的job竟然突然出现问题了,该job总是不停的循环执行,而且其中的某个过程总是没执行完整。这其中我唯一做过的修改就是增加了物化视图。 难不成是物化视图导致了job的异常?(可见itpub上当时的提问http://www.itpub.net/thread-1517207-1-1.html) 原因:在job中在对表进行了...

weixin_30726161的博客 149

关于奇怪的并行进程分析(二) (r6笔记第46天)

前几天的并行问题自己分析了下,也算有了一些进展,但是目前还没有找到让人信服的理由,有些读者也比较关心这个问题,所以第二篇中会把自己的分析过程写出来,第三篇中应该会对这个问...

杨建荣的学习笔记 346

ORA-12032: cannot use rowid column from materialized view log on "DCS_BIZ"."TMP_12"

一、问题原因   SQL> CREATE MATERIALIZED VIEW MV_TMP_12   2    refresh FAST on DEMAND   3   -- with primary key   4   START WITH sysdate NEXT sysdate+ 1/1440   5   enable query rewrite   6   AS   7  

minwang593的专栏 3136

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

1、使用物化视图中遇到的问题 一般在创建物化视图的时候,在数据量不大的时候,刷新的方式都是采用完全刷新的。 随着系统的使用一些物化视图的源表的数据量在不断的增长,原本采用完全方式几秒就能刷新完成的物化视图,现在需要等待很久的时间才能刷新完成。 其实物化视图从一开始就帮我们想好了解决方法:通过物化视图日志来实现物化视图的快速刷新; 2、传统完全刷新 区分 快速刷新 完全刷新:先把物化视图...

fly_miqiqi的博客 7073
上一篇: 企业现场管理5S标语
下一篇: 如何识别最耗资源的SQL
jwisdom
博客等级 码龄19年 15粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值