由于游标打开数过多导致的CPU占用率过高的问题

本文探讨了导致CPU占有率过高的几种原因,并通过查询数据库游标的状态,定位到具体的SQL语句,最终解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出现CPU占有率过高,情况可能有很多:
1. 比如大数量的DELETE FROM TABLE,大数量的表DROP,CREATE或者DROP很大的索引
2. Oracle可能的bug,比如突然间大量的session连接Oracle,结果导致lsnrctl Hang。
3. 数据库连接做非常耗资源的SQL查询
4. SMON作清除临时段(比如非正常关闭后的OPEN)
具体还是要根据具体进程和alert中的信息来判断

估计是第三条原因导致的,于是查了一下数据库的游标
select count(*) from v$open_cursor;

发现有六百多条
再详细查:
 select * from v$open_cursor;

分组查详细:
select sql_text, user_name,count(*)   counts   from   v$open_cursor   group   by   sql_text,user_name   order   by   cn   asc;   

最终找到出现频率最多的语句,查程序,解决问题.


转载于:https://www.cnblogs.com/ydfqing/archive/2008/08/21/1273220.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值