Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >性能调优之redo切换频率(47天)

性能调优之redo切换频率(47天)

作者头像
jeanron100
发布于 2018-03-13 10:28:43
发布于 2018-03-13 10:28:43
7990
举报

生产系统的一个库(负责容错处理的),目前遇到了严重的性能问题,数据量也大的出奇,一个分区表一百多个分区,blob字段达到了800多G.查看 AWR 系统负载倒不重,但是根据反馈响应速度很慢。

Snap Id

Snap Time

Sessions

Cursors/Session

Begin Snap:

4512

17-Jul-13 10:00:04

24

2.0

End Snap:

4513

17-Jul-13 11:00:06

41

19.5

Elapsed:

60.03 (mins)

DB Time:

70.09 (mins)

Load Profile

Per Second

Per Transaction

Redo size:

2,061,966.68

840,400.17

Logical reads:

28,242.96

11,511.05

Block changes:

4,749.98

1,935.96

Physical reads:

1,990.22

811.16

Physical writes:

244.15

99.51

User calls:

303.93

123.87

Parses:

80.30

32.73

Hard parses:

0.02

0.01

Sorts:

91.59

37.33

Logons:

0.04

0.02

Executes:

132.32

53.93

Transactions:

2.45

Instance Efficiency Percentages (Target 100%)

Buffer Nowait %:

99.67

Redo NoWait %:

99.95

Buffer Hit %:

96.06

In-memory Sort %:

100.00

Library Hit %:

99.98

Soft Parse %:

99.97

Execute to Parse %:

39.31

Latch Hit %:

97.11

Parse CPU to Parse Elapsd %:

2.80

% Non-Parse CPU:

99.69

Parse CPU to Parse Elapsd指标很低,而且memory的使用情况也只有40%,50%.但是每秒的redo数达到了近2M. 想看看日志切换频率,但是似乎从报告中找不到明显的地方,可以用以下sql来。填上自己需要关注的时间段。

select sequence#,first_time,nexttime,round(((first_time-nexttime)*24)*60,2) diff from (select sequence#,first_time,lag(first_time) over(order by sequence#) nexttime from v$log_history where thread#=1 and to_char(first_time,'yyyy-mm-dd')='2013-07-17') order by sequence# desc; SEQ# FIRST_TIME NEXTTIME DURATION(mins) 167868 2013-07-17 10:15:37 2013-07-17 10:15:10 .45 167867 2013-07-17 10:15:10 2013-07-17 10:14:59 .18 167866 2013-07-17 10:14:59 2013-07-17 10:14:46 .22 167865 2013-07-17 10:14:46 2013-07-17 10:14:32 .23 167864 2013-07-17 10:14:32 2013-07-17 10:14:22 .17 167863 2013-07-17 10:14:22 2013-07-17 10:14:15 .12 167862 2013-07-17 10:14:15 2013-07-17 10:14:09 .1 167861 2013-07-17 10:14:09 2013-07-17 07:09:19 184.83 167860 2013-07-17 07:09:19 2013-07-17 03:01:32 247.78

可以看到在负载高的时候,日志切换极快。查看当前的redo情况,是四组日志,每组100M,看来明显不够。但是需要设置为多少合适呢,发现了问题,给出对应的指标值也是很重要的。根据oracle的建议,20分钟内切换算是一个指标。跑了一个addm报告,也轻松的得到了结果,addm建议调为2048M.oracle还估算了调优这个会节省多少时间,IMPACT: 26% impact (1099 seconds)

此外还惊喜的得到了调整cursor的建议,这个问题最近得到开发的反馈说会碰到:

ORA-01000 max open cursors exceed...

看来addm确实是个好东西,但是在报告里面没有给出明显的理由。在awr报告里找cursor相关的指标

soft parsing of SQL statements was consuming significant database time.

Statistic

Begin Value

End Value

session pga memory max

15,053,354,632

15,249,597,664

session cursor cache count

383,435

386,192

session uga memory

4.4E+13

4.5E+13

opened cursors current

48

800

logons current

24

41

session uga memory max

44,030,880,616

44,314,080,728

session pga memory

13,478,131,336

13,655,531,424

给出的建议如下:

ACTION: Consider increase parameter open_cursors more then 300.

increase parameter session_cached_cursors to 150

now parameter details: open_cursors=300 session_cached_cursors=100

IMPACT: 3.9% impact (163 seconds)

此外还发现了一些top sql,但是没有明显的调优方向,我没有马上动手,我觉得这些需要以上的系统级配置生效以后需要做持续性的调整。

lob的调优还需要多补补。在后续章节分享。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2014-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Oracle Execute to Parse 执行解析比分析
Execute to Parse%是AWR报告中Instance Efficiency Percentages部分中重要的一个性能指标,反应了数据库SQL解析和执行的比率。这个比率值同时也涉及到了与cursor相关的参数以及硬解析,软解析,软软解析等。本文是围绕这个比率进行展开及描述。 一、什么是Execute to Parse% --下面是来自AWR报告的相关信息 Instance Efficiency Percentages (Target 100%) ~~~~~~~~~~~~~~~~~~~~~~
Leshami
2018/08/13
1.4K0
生产环境sqlldr加载性能问题及分析之二(r2第20天)
上一节讨论了在数据迁移中发现数据加载的速度一下子慢了很多,和之前在测试环境相比有很大的差距。一个原因就是由于在数据加载的过程中有一些额外的session也在操作访问数据库,造成了undo的使用率急剧上升,数据库负载从某种程度上也加剧了。通过查看awr,ash报告可以发现更多的内容。 测试环境的数据库负载情况 Load Profile Per SecondPer TransactionPer ExecPer CallDB Time(s):98.22.20.730.67DB CPU(s):6.40.10.0
jeanron100
2018/03/14
6550
通过shell脚本监控日志切换频率 (94天)
在数据库遇到性能问题的时候,可能从io,cpu等角度能够下手找到性能瓶颈,日志的切换也是影响性能的一个因素,如果日志切换台频繁,等待时间就会在日志相关的事件上,从数据库的角度来说,肯定是io的瓶颈。
jeanron100
2018/03/14
9370
通过shell脚本监控日志切换频率 (94天)
缓慢的update语句性能分析(r6笔记第61天)
最近处理一个问题的时候,先是收到DB time升高的报警,然后查看DB time的情况发现,已经有近1000%的负载了。 带着好奇心想看看到底是什么样的一个语句导致如此的情况。 先抓取了一个awr
jeanron100
2018/03/16
7560
缓慢的update语句性能分析(r6笔记第61天)
Oracle RAC 环境下的 v$log v$logfile
      通常情况下,在Oracle RAC 环境中,v$视图可查询到你所连接实例的相关信息,而gv$视图则包含所有实例的信息。然而在RAC环境中,当我们查询v$log视图时说按照常理的话,v$log视图应当看到的是你所连接到实例的日志组的信息。但v$log是个例外,也就是说v$log视图里看到的不仅仅是自身实例所包含的redo日志组,其他所有剩余实例的redo日志组也同样会出现在该视图中。无论你从任意一个节点连接查询v$log视图都将获得相同的结果。该情形同样适用于v$logfile。这到底是怎么一回事呢?如果你有类似的迷惑,不妨接着往下看。
Leshami
2018/08/13
1.5K0
GOLDENGATE EXTRACT在DATABASE SWITCHOVER后表现以及处理方案
场景1:数据库SWITCHOVER切换之前停止OGG CLASSIC EXTRACT进程,切换之后修改OGG访问新主库,OGG EXTRACT进程RBA不移动也不会报错.
徐靖
2020/08/05
7650
####### Scripts Summary #######
Scripts Summary Version: 1.0.1 issueDate: 2017-11-11 modifiedDate: 2017-11-28
Alfred Zhao
2019/05/24
5790
通过addm分析io问题(r2笔记64天)
昨晚在做测试环境数据迁移的时候,遇到了io的问题,本来预计2,3个小时完成的数据导入工作最后竟然耗了7个多小时。在数据的导入中,使用了10个并行的session,每个session都启用的并行度为8,在表级,索引级都做了nologging设置,在insert的时候使用了append模式,结果本来数据的导入还是比较顺利的,突然在8点左右开始就一下子直线下降。 在使用top命令查看进程的使用情况时,留意到rman的一些进程正在运行。但是大晚上的哪找客户的人来确认这个,使用dd来测试io的性能,创建一个200M
jeanron100
2018/03/14
5960
手工搭建Data Guard
Data Guard的搭建可以使用GC图形化安装,优缺点很明显,优点就是图形化操作,符合国人的习惯(据secooler介绍外国程序员能用图形化做的事就一定用图形做,因为boss看得懂,和国人正相反。。。),缺点就是如同Windows一样,宛如黑盒,换句话说,要时刻祈祷不要出问题,否则有时很难知道他为什么挂了。。。
bisal
2019/01/29
7780
Statspack报告主要参数指标简要说明
全文链接:         http://www.eygle.com/more/statspack_list.htm
数据和云01
2018/09/05
4180
完美的执行计划导致的性能问题(r4笔记第17天)
今天现场的开发同事反馈有一个job处理数据的速度很慢,从半夜2点开始运行,结果到了早上8点还没有运行完,最后无奈kill掉了进程。等我刚到公司,他们想让我查查倒底是什么原因导致的执行速度很慢。 首先和他们简单沟通了下,问最近有什么新的变更吗,他们说没有,平时跑这个job的用户量不是很大,今天早晨调用job的时候用户量要略微大些。 了解了这些我查看了下数据库的负载,发现在问题发生的时间段,没有明显的性能抖动。 DB_NAME BEGIN_SNAP END_SNAP SNAPDATE
jeanron100
2018/03/15
8090
实验记录:Oracle redo logfile的resize过程
实验目的:本实验是修改redo logfile的过程记录,将当前数据库的3组redo logfile由原来的默认50M大小修改为100M。
Alfred Zhao
2019/05/24
4200
关于等待事件"read by other session"(r3笔记第89天)
在查看数据库负载的时候,发现早上10点开始到12点的这两个钟头,系统负载异常的高。于是抓取了一个awr报告。 Snap IdSnap TimeSessionsCursors/SessionBegin Snap:2402718-Dec-14 10:00:4330656.6End Snap:2403318-Dec-14 11:00:4834416.5Elapsed: 60.08 (mins) DB Time: 3,650.67 (mins) 可以从profile里看到,系统的IO负载还是很高的。 Loa
jeanron100
2018/03/15
5970
一条空间不足报警的分析(r7笔记第1天)
今天下午收到一条报警邮件 ZABBIX-监控系统: ------------------------------------ 报警内容: Free disk space is less than 20% on volume /U01 ------------------------------------ 报警级别: PROBLEM ------------------------------------ 监控项目: Free disk space on /U01 (percentage):9.7 %
jeanron100
2018/03/16
7520
一条空间不足报警的分析(r7笔记第1天)
Oracle SQL 语句:查看 redo log 每小时切换次数
有时候,通过查看在线重做日志 redo log 每小时的切换次数,可以查看故障发生的时间点!
Lucifer三思而后行
2021/09/10
8330
一条执行4秒的sql语句导致的系统问题(r3笔记第10天)
一般来说一条sql语句执行个4秒钟是可以接受的,没有什么问题,但是如果应该执行1秒,却执行了4秒,问题就挺大的了。 今天查看数据库负载,发现在中午12:00 到1点之间,数据库的负载急剧增加,负载达到了百倍。 Snap IdSnap TimeSessionsCursors/SessionBegin Snap:1510629-Sep-14 12:00:0716027.3End Snap:1510729-Sep-14 13:00:1328079.7Elapsed: 60.10 (mins) DB T
jeanron100
2018/03/14
9190
job处理缓慢的性能问题排查与分析(r4笔记第18天)
昨天开发的同事找到我说,生产有个job处理数据的速度很慢,想让我帮忙看看是怎么回事,最近碰到这种问题相对比较多了,但是问题的原因也是五花八门。我还是大体找他们了解了下情况,说有一个Job是处理文件传输的,但是从目前的运行情况来看,处理速度很慢,基本没什么进展,我向他们确认这几天是否有数据变更的操作,他们说没有。得到这个确认查看问题的方向就有明显的不同,我还是照例查看了一下数据库负载,锁情况。但是么有发现什么信息。 从数据库的负载来看,负载倒不高。 Snap IdSnap TimeSessionsCurs
jeanron100
2018/03/15
6170
《收获,不止SQL优化》读书笔记
假如使用了Hint语法: /*+ gather_plan_statistics */,就可以省略步骤1,直接执行步骤2和3,获取执行计划
SmileNicky
2019/07/09
1.5K0
再次踩到搜遍全网也找不到解药的坑ORA-49204之解决方案
Errors in file /u01/app/oracle/diag/rdbms/orcldg3/orcl/trace/orcl_m000_9167.trc:
杨漆
2021/07/25
9950
再次踩到搜遍全网也找不到解药的坑ORA-49204之解决方案
ARCH和LGWR进程同步DG日志的区别alert日志上也有所区别:
我在做Standby RAC实验时,起初使用的是ARCH传输,后来将其改为LGWR传输(实际是LGWR分出的小工进程LNS):
Alfred Zhao
2019/05/24
8620
推荐阅读
相关推荐
Oracle Execute to Parse 执行解析比分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档