Oracle怎么排查CPU占用过高的排查
本篇内容主要讲解“Oracle怎么排查CPU占用过高的排查”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle怎么排查CPU占用过高的排查”吧!
CPU主要功能:处理指令、执行操作、要求进行动作、控制时间、处理数据。
结合数据库实例CPU占用高,可能的原因是数据库在执行大量的操作(全表查询、大量排序等)。
由于公司没有DBA,遇到数据库问题只能自己排查。
是否存在死锁
查询死锁以及解锁的语句参考下方:
查看死锁ID
SELECTs.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,
l.Oracle_USERNAME,l.OS_USER_NAME,l.PROCESSFROMV$LOCKED_OBJECT
l,V$SESSIONSWHEREl.SESSION_ID=S.SID;
查看表名称
selectb.owner,b.object_name,a.session_id,a.locked_modefromv$locked_objecta,dba_objectsbwhereb.object_id=a.object_id;
手工关闭死锁
altersystemkillsession‘sid,serial#’;(其中sid=l.session_id)
通过查询死锁也发现了一些死锁,杀掉后CPU没有降下来,只能重新排查。
借助PLSQL查询定时job和session
通过PL/SQL查询到,不存在定时的JOB执行。
通过Tools-Sessions,发现存在较多数据库连接与访问,但较难定位到具体那个sql或表存在问题。
于是,Kill了所有Session,CPU得到缓解,但根本原因未查到,隔几分钟又反复了。
过程总结
造成CPU暴增的原因有很多,思路也有很多,后续如果遇到可以参考上述思路,精准定位到问题并进行优化。
到此,相信大家对“Oracle怎么排查CPU占用过高的排查”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341