[20180829]减少日志生成量.txt --//最近一段时间优化一下生产数据库,主要是问题比我预计要严重,实际上exadata实在太快了,把许多问题都给掩盖了. --//实际上这个问题很早就存在,我实在不想提,基于国内许多应用都可能存在类似问题,还是写一下. SQL ordered by Executions %CPU - CPU Time as a percentage of Elapsed Time %IO - User I/O Time as a percentage of Elapsed Time Total Executions: 13,385,158 Captured SQL account for 65.4% of Total Executions Rows Processed Rows per Exec Elapsed Time (s) %CPU %IO SQL Id SQL Module SQL Text .... 140,257 139,411 0.99 14.74 101.1 0 5f2atm993xz6w PORTAL.EXE update PD_PMXS SET PDBZ =:"SYS..." 140,256 140,256 1.00 19.11 102 0 bs2qwd0crz5f3 PORTAL.EXE update PD_DLB SET PDBZ =:"SYS_..." --//一天不到1万人次就诊,修改PD_DLB表在1个小时内就14万次,注意看Rows per Exec,每次修改1条.很明显在做无效刷频. --//我曾经跟一些开发讲过,在写代码时注意这些刷频语句.这些语句单条执行很快,但是执行很频繁,累积起来就很可怕. --//甚至最终就是这样运行模式导致运行缓慢.. --//真心感到可悲的是,我们团队大部分比我熟悉表结构,PD_DLB(排队表)这个表当天处理完后要删除里面的记录的. --//也就是最大记录量当天就诊人次,不大可能出现每小时14万次的修改,这么多人看awr报表,就没人注意到这么简单的问题吗? 5f2atm993xz6w update PD_PMXS SET PDBZ =:"SYS_B_0" , STATUS =:"SYS_B_1" WHERE RDID =:1 修改为 update PD_PMXS SET PDBZ =:"SYS_B_0" , STATUS =:"SYS_B_1" WHERE RDID =:1 and PDBZ <> :"SYS_B_0" and STATUS <>:"SYS_B_1" --//错误,应该修改如下: 修改为 update PD_PMXS SET PDBZ =:"SYS_B_0" , STATUS =:"SYS_B_1" WHERE RDID =:1 and (PDBZ,STATUS) not in(( :"SYS_B_0" , :"SYS_B_1" ); bs2qwd0crz5f3 update PD_DLB SET PDBZ =:"SYS_B_0" WHERE RDID =:1 修改为 update PD_DLB SET PDBZ =:"SYS_B_0" WHERE RDID =:1 and PDBZ <> :"SYS_B_0" --//补充一下实际上不能这样1条1条改,猜测是打开brid的游标,然后循环修改相关记录. --//这样执行效率很低,而是一气呵成,一次修改需要的记录. --//不想使用logminer探查,随手找一个brid查询,使用as of查询方式. SELECT ROWID x ,versions_starttime ,versions_endtime ,versions_xid ,versions_operation ,versions_startscn ,versions_endscn ,PD_DLB.PDBZ,pd_dlb.* FROM PD_DLB VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE; WHERE RDID =11327282 ORDER BY versions_endscn; --//这样运行10分钟都没结果出来,只能改成查询10分钟之前的变化. SELECT ROWID x ,versions_starttime ,versions_endtime ,versions_xid ,versions_operation ,versions_startscn ,versions_endscn ,PD_DLB.PDBZ,pd_dlb.* FROM PD_DLB VERSIONS BETWEEN TIMESTAMP sysdate-15/1440 and sysdate WHERE RDID =11327282 ORDER BY versions_endscn; --//结果不贴出了.15分钟内查询到112条,基本在做无用功.可以看出15*60/112 = 8.035, 8秒有一次刷新. SELECT ROWID x ,versions_starttime ,versions_endtime ,versions_xid ,versions_operation ,versions_startscn ,versions_endscn ,PD_PMXS.status,PDBZ,PD_PMXS.* FROM PD_PMXS VERSIONS BETWEEN TIMESTAMP sysdate-15/1440 and sysdate WHERE RDID =11327282 ORDER BY versions_endscn; --//看到开发这样写代码,真心的很无语.这样问题已经存在多年,这么多人,无数的眼睛在看代码没人提出异议吗?可悲可叹..
[20180829]减少日志生成量.txt
来源:这里教程网
时间:2026-03-03 11:56:46
作者:
编辑推荐:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- Oracle 12C Data Gurad RAC TO RAC
Oracle 12C Data Gurad RAC TO RAC
26-03-03 - 从 Oracle 转型 MySQL 分布式事务数据库的实战旅途
从 Oracle 转型 MySQL 分布式事务数据库的实战旅途
26-03-03 - Oracle 18c安装初体验
Oracle 18c安装初体验
26-03-03 - word2010怎么设置双行合一
word2010怎么设置双行合一
26-03-03 - 数据库服务:activemq 在灾备双活建设中的研究
数据库服务:activemq 在灾备双活建设中的研究
26-03-03 - 删除归档日志报RMAN-08137
删除归档日志报RMAN-08137
26-03-03 - SQL优化案例-分区索引之无前缀索引(六)
SQL优化案例-分区索引之无前缀索引(六)
26-03-03 - Debian服务端口绑定配置详解(手把手教你如何在Debian系统中正确绑定和配置服务端口)
- buffer busy waits引起的会话突增
buffer busy waits引起的会话突增
26-03-03 - Check FRA usage
Check FRA usage
26-03-03
