Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

163

积分

0

好友

12

主题
1#
发表于 2012-2-15 10:52:18 | 查看: 12790| 回复: 13
请大家能不能帮忙分析一下 awrrpt_1_19654_19655.html 这个报告中的db_time超高的原因?
另SQL ordered by Reads为什么没有捕捉到top read的sql ? 这是什么原因

awrrpt_1_19655_19656.html是后一个时间点的awr,  awrdiff是两个时间的比对


谢谢.
另这是一个两节点的 RAC,另一个节点上的db_time是正常,所以就不有上传另一个节点的awr

[ 本帖最后由 不了峰 于 2012-2-15 16:21 编辑 ]

awr1.zip

144.76 KB, 下载次数: 2004

awr2.rar

46.22 KB, 下载次数: 2005

addmrpt_1_19654_19655.txt

6.26 KB, 下载次数: 1738

2#
发表于 2012-2-15 11:55:57
从SQL信息来看,区别不大。
CPU的使用主要区别是Service Statistics部分中的SYS$USERS。

可以从v$services和V$active_session_history(或者dba_hist_active_sess_history)查找相关时间段有哪些program属于SYS$USERS,猜测就是rman备份。

回复 只看该作者 道具 举报

3#
发表于 2012-2-15 13:58:16
分析 awrddrpt 性能比较快照可以发现, 主要区别在于CPU TIME


awr_snapshot_cpu_time.png


但是 主要AWR捕捉到的主要消耗CPU的语句 不管是单次的cpu time 还是执行总数也好 都只是微小的差别:

sql_order_by_cpu_time1.png

sql_order_by_cpu_time2.png


Load Profile 中除了 physical read 有较大差别外, 其他差别远不到一个数量级

rac_load_profile.png




就Time model statistics来看, 仍是SQL Execute elapsed Time 使用了主要的CPU TIME, 而RMAN 使用的CPU TIME很少280s 左右。

time_model_statistics.png

回复 只看该作者 道具 举报

4#
发表于 2012-2-15 14:00:22
就Time model statistics来看, 仍是SQL Execute elapsed Time 使用了主要的CPU TIME, 而RMAN 使用的CPU TIME很少280s 左右。
仍需要 ASH 和 ADDM 以继续分析。

目前所能做的猜测是  在快照1 中某些SQL语句 占用了大量的CPU TIME, 但是因为某种原因 AWR 报告没有捕捉到这个SQL的文本,  考虑是否在快照1 过程中有 刷新过 共享池, 导致该 SQL 丢失capture。

回复 只看该作者 道具 举报

5#
发表于 2012-2-15 15:54:41

回复 2# 的帖子

根据你的建议,在视图中,才到引起物理读的sql语句。其中一个sql语句体现在 23:00~24:00这一时间段的awr报告中。
见附件awr2。

谢谢!。但是还有是些疑问。。

回复 只看该作者 道具 举报

6#
发表于 2012-2-15 15:56:45

回复 4# 的帖子

没有刷过共享池。。
通过    SELECT * FROM v$sga_resize_ops; 那天出现 内存抖动的现象

回复 只看该作者 道具 举报

7#
发表于 2012-2-15 16:05:51
通过 dba_hist_active_sess_history 中的snap_id=19655查询
SELECT program
      ,session_type
      ,session_state
      ,COUNT(*)
  FROM dba_hist_active_sess_history
WHERE instance_number = 1
   AND snap_id = 19655
   AND service_hash = 3427055676   --="SYS$USERS"
GROUP BY program
         ,session_type
         ,session_state
ORDER BY sample_time

1.jpg

(2)通过下面找到sql_id
SELECT  sql_id,count(*)      FROM dba_hist_active_sess_history where instance_number=1
and snap_id=19655 and service_hash=3427055676
and program like 'oracle@kvamdb1%'
group by sql_id ;
-------
null                      18
3r6bjxp0ypms3    186
db78fxqxwxt7r    1
5rb1h41pb4bvy    1
0uhtw808mztuv    2

--(3)发现 3r6bjxp0ypms3 这个 sql在附件awr2.rar中即23:00~24:00的快照中有出现。
   3.1 这个sql 语句是update 一个600MB的表,全表扫描  update 其中的两条记录  -
   3.2  另一个0uhtw808mztuv  是一个查询900MB的表。求最大的时间..全表扫描.

总结,可能是由于这两个sql产生了大量的物理读??
   这是否是db_time的根本原因??

回复 只看该作者 道具 举报

8#
发表于 2012-2-15 16:27:55
可是,有我点不认同 变大的物理读就是db_time上升的原凶。

因为 3r6bjxp0ypms3 这语句从23:00开始,就有在update rep_fz_wap_terminalaccess表的数据,从oper_time    = SYSDATE 来看,表的每天钟update的条数 基本是差不多的。那么就是从可能他们生成的物理读是差不多的。
那么还是问到时哪里多出了物理读,
什么是引起db_time上升的原因?

2.jpg

4.jpg

[ 本帖最后由 不了峰 于 2012-2-15 16:38 编辑 ]

回复 只看该作者 道具 举报

9#
发表于 2012-2-15 16:47:15
注意 上面的-0:30之后到1:07分钟都更新数据 ,,

难道数据这时就卡这边。于是db_time上升 ??

回复 只看该作者 道具 举报

10#
发表于 2012-2-15 16:47:43

回复 8# 的帖子

我并没有说 physical read 是元凶, 是SQL 执行 消耗了大量的 CPU_TIME = > DB_TIME。 但是问题在于AWR中未反应出这部分的SQL语句 , 可能是 部分进程在执行SQL时 hang住, 也有可能MMON进程因为某些原因未能捕捉到这些SQL的执行情况。

回复 只看该作者 道具 举报

11#
发表于 2012-2-15 17:03:26
呵呵,我没有说你有说 物理读是元凶。

我只是在分析这个awr时,找不到合理的理由去解释 db_time上升的原因。
所以很牵强的认认,可能是物理读造成了db_time的急剧上升。

是我个人问题。

回复 只看该作者 道具 举报

12#
发表于 2012-2-15 22:07:26
把 SQL ordered by Gets里的SQL先优化了吧,
逻辑读高是影响CPU的一个典型

回复 只看该作者 道具 举报

13#
发表于 2012-2-15 22:19:39
注意设计,别有事没事用这种CPU杀手
lower(key.key_name) = lower(cic.name)

回复 只看该作者 道具 举报

14#
发表于 2012-2-16 13:57:16
原帖由 teapot 于 2012-2-15 22:19 发表
注意设计,别有事没事用这种CPU杀手
lower(key.key_name) = lower(cic.name)



谢谢!
这个SQL是查当前告警版的未恢复 记录(在前面的  osc.clearedtime = to_date('4001-1-1', 'yyyy-mm-dd')) 。这些未恢复的数据量理论上应该 少,最多几十条。
所以就不去考虑
但是,告警量一多,就不好。

我很认同逻辑读是cpu高的一个大原因。当是从awr看不是这次的逻辑读变大了。
我还没有监控看cpu的负载中  user高,还是sys高。

谢谢你!

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-15 02:13 , Processed in 0.061808 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569