cursor: pin S wait on X影响系统记录
2012-09-28 10:43
429 查看
发现问题:从10.23号开始,生产数据库CPU消耗异常,DB Time是平常的两倍多,我看了这几天的AWR报告,有一个等待事件cursor: pin S wait on一直独占鳌头。
定位问题:根据下列sql可以找到对应的业务系统执行的语句,然后根据执行语句到代码中找到那个功能。我定位到时的是一个定时功能,每个星期天凌晨5:00执行,更新TERMINAL_LOWER_USER_BASE(有两百五十万的数据)的内容,看代码是用的循环update commit,虽然这种方式不够优化,但也不至于有这么大的消耗。于是决定再观察两天,奇怪的是v$session,v$session_wait中一直看到这个等待事件,DB
time也一致没有下降。
解决问题:根据sqlId到v$sql中查到一个执行1053175s,另一个为448356s,经判断确认是僵死的进程,kill掉就好了。
总结:这个问题耗时3天才解决,其实半天就可以,可惜自己的经验欠缺,如果找点查到v$sql的执行时间,问题应该早就解决了。
定位问题:根据下列sql可以找到对应的业务系统执行的语句,然后根据执行语句到代码中找到那个功能。我定位到时的是一个定时功能,每个星期天凌晨5:00执行,更新TERMINAL_LOWER_USER_BASE(有两百五十万的数据)的内容,看代码是用的循环update commit,虽然这种方式不够优化,但也不至于有这么大的消耗。于是决定再观察两天,奇怪的是v$session,v$session_wait中一直看到这个等待事件,DB
time也一致没有下降。
select b.*, sq.sql_text from v$session se, v$sql sq, (select a.*, s.sql_text from v$sql s, (select sid, event, wait_class, p1, p2raw, to_number(substr(p2raw, 1, 4), 'xxxx') sid_hold_mutex_x from v$session_wait where event like 'cursor%') a where s.HASH_VALUE = a.p1) b where se.sid = b.sid and se.sql_hash_value = sq.hash_value;
解决问题:根据sqlId到v$sql中查到一个执行1053175s,另一个为448356s,经判断确认是僵死的进程,kill掉就好了。
总结:这个问题耗时3天才解决,其实半天就可以,可惜自己的经验欠缺,如果找点查到v$sql的执行时间,问题应该早就解决了。
相关文章推荐
- cursor: pin S wait on X等待事件的处理过程(转载)
- High 'cursor: pin S wait on X' . Cause: Shared Pool/Buffer Cache Resize Activity (文档 ID 742599.1)
- 如何诊断cursor pin s wait on x 系列一
- 如何诊断cursor pin s wait on x 系列二
- 【转自Oracle OCM--小荷】记一次cursor pin s wait on X的处理
- 处理cursor: pin S wait on X等待事件
- cursor pin S wait on X
- How to Find Blocking Session for Mutex Wait Event cursor: pin S wait on X
- 关于cursor: pin S wait on X 和 library cache pin 及其他等待事件
- cursor pin S wait on X
- Troubleshooting 'cursor: pin S wait on X' waits. (文档 ID 1349387.1)
- NDMCDB数据库hang住故障分析 - cursor: pin S wait on X
- "Cursor: Pin S Wait On X" Contention Mutex Sleep Reason Primarily (文档 ID 1268724.1)
- Oracle cursor pin S wait on X 等待事件 说明
- 一次cursor: pin S wait on X事件的跟踪
- 模拟cursor pin S wait on X
- oracle cursor: pin s wait on x (一)
- oracle wait event:cursor: pin S wait on X
- cursor: pin S wait on X等待事件
- WAITEVENT: "cursor: pin S wait on X" Reference Note (文档 ID 1298015.1)