云淡风清's blog

首页 新随笔 管理

出现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;   

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


posted on 2008-08-21 15:00  云淡风清(ydfqing)  阅读(598)  评论(0编辑  收藏  举报