oracle_CPU占用率高时的问题定位

监控cpu的使用率
通过topas、nmon、vmstat 等工具监控cpu的使用率:

问题定位
通过等待事件定位:
这种情况在操作系统级别看有大量占cpu 高的进程。
1、查询数据库中session的等待情况:
SELECT event, COUNT(9) FROM v$session GROUP BY event;
注意事件为 latch free,cache buffer chains,shared pool,buffer busy wait等分组的数量,这些事件会消耗大量cpu。

2、查询有问题的session正在运行的sql语句:
SELECT sql_id, COUNT(9)
  FROM v$session
 WHERE event = 'latch free'
 GROUP BY sql_id;

查看每个sql语句被多少个session在执行,定位问题是否是sql语句的大量运行引起的。
3、查看详细sql:
SELECT sql_fulltext FROM v$sql WHERE sql_id = '';

通过后台进程号定位:
这种情况在操作系统级别看有一个或两个持续占cpu 高的进程。
1、通过topas查看进程号(spid)

2、通过spid 取得相关联的session
取得paddr进行关联
Select addr from v$process where spid=5525626;

Select USERNAME,status,osuser,machine,terminal,program,module,sql_id,event from v$session
Where padd=’07000003395E8F40’;

Event 为等待事件,重点关注

3、查看session的等待事件、运行语句、调用模块等信息

SELECT sql_fulltext FROM v$sql WHERE sql_id = '';


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值