一、问题描述

运行在Windows上的Oracle开发库的oracle进程CPU使用率保持在99%,服务器和数据库均反应缓慢。

二、排查思路

可能造成CPU使用率高的情况有:大量排序、大量SQL解析、全表扫描、Oracle Bug等。因此希望找到占用CPU较高的进程ID(UNIX或LINUX)或线程ID(Windows)来找到对应的SQL语句,以分析问题的原因。

三、处理步骤

1. 下载process explorer工具,用于查看Windows环境下的进程和线程信息。

2. 双击oracle.exe进程,查看oracle的线程信息,按照CPU使用率倒序排序,找到占用CPU较高的TID。(如在UNIX或LINUX系统中,使用top命令即可获得占用CPU较高的进程ID,使用进程ID去数据库中查找对应信息即可)

3. 使用上面找到的TID代入下面的SQL查询对应的SQL语句或会话信息。

SELECT sql_text FROM v$sqltext a WHERE (a.hash_value, a.address) IN (SELECT DECODE(sql_hash_value, 0, prev_hash_value, sql_hash_value),DECODE(sql_hash_value, 0, prev_sql_addr, sql_address) FROM v$session b WHERE b.paddr =(SELECT addr FROM v$process c WHERE c.spid = '&pid')) ORDER BY piece ASC;

select id,serial# ,username,osuser,machine,program,process,to_char(logon_time,'yyyy-mm-dd hh24:mi:ss') logon from v$session where paddr in ( select addr from v$process where spid in('&pid'));

4. kill掉查出的会话,记录查出的SQL语句待后续分析。

四、总结:

在进行第三步的时候遇到状况:使用找出的TID在数据库中查不到对应的SQL和会话信息。为先恢复数据库服务,直接kill了占用CPU较高的几个线程,后续通过分析AWR和ASH报告推测本次故障与数据库中几个涉及临时表创建和操作的存储过程有关,在存储过程执行中有大量的全表扫描和直接路径读并伴随大量的物理读操作。
--------------------- 
作者:韩小昱 
来源:CSDN 
原文:https://blog.csdn.net/hrbhanyu/article/details/54892014 
版权声明:本文为博主原创文章,转载请附上博文链接!

Oracle数据库CPU占用过高相关推荐

  1. 【linux】oracle数据库cpu占用过高排查方案

    将[%cpu]占用率最高的那条的[PID]复制取出,去数据库执行下面语句,即可查询出是哪条sql语句占导致cpu占用很高 SELECT sql_text FROM v$sqltext a WHERE ...

  2. oracle查询cpu占用率高,解决oracle进程CPU占用过高问题

    解决问题的过程: 1)查看服务器CPU使用情况 输入top 会发现排在前面的都是oracle的进程,而且CPU占用率都是50以上. $top top - 16:28:41 up 4 days, 22: ...

  3. mysql数据库cpu占用特别高

    (1)多实例的服务器,先top查看是那一个进程占用CPU多: (2)show processeslist 查看线程是否有锁住: (3)查看慢查询,找出执行时间长的sql:explain分析sql是否走 ...

  4. mysql数据库占用太多的CPU_mysql数据库CPU使用率过高解决方案

    压测时,经常会出现mysql数据库CPU使用率过高,下面介绍一下简单的问题定位方法: 1.确定是否有慢sql语句: 1)登录数据库服务器,连接数据库:执行命令:mysql -uroot -p 密码 2 ...

  5. kswapd0 进程CPU占用过高

    前几天遇到的一个问题,自己本地用VM配置的虚拟机,一般会top查看进程以及CPU占用的一些情况.又一次用laravel 打印对象,里面的内容比较多,浏览器当时就卡了. 然后看进程的情况.我以为会是ng ...

  6. java 一次CPU占用过高问题的排查及解决,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  7. 服务器cpu 单核过高的影响,一次单核CPU占用过高问题的处理

    案例 客户现场反馈,top的检查结果中,一个CPU的占用一直是100%.实际上现场有4个CPU,而且这个服务器是mysql专属服务器. 我的第一反应是io_thread一类的参数设置有问题,检查以后发 ...

  8. 接口压测时MySql对CPU占用过高

    记录MySql过多占用CPU资源的排查过程及解决方案 场景: 1.需要对项目的接口进行压力测试 2.大部分接口压测是正常的 3.只有部分接口压测时MySql对CPU的占用达到90%   压测: 压测线 ...

  9. “RESOURCE MONITOR“CPU占用特别高

    背景: SQL Server 2008 R2 10.50.1600 没有设置页面文件,内存为64G,数据库分配50G cpu使用占了50%以上,平时只有10-20%,某台服务器"RESOUR ...

最新文章

  1. instance “error” 了怎么办?- 每天5分钟玩转 OpenStack(159)
  2. 游戏编程入门(1) -- 精灵 ISprite
  3. 2017计算机应用+简答,2017计算机应用基础试题及答案
  4. 使用 C# 9.0 新语法提升 if 语句美感
  5. linux mcelog 运行,服务器硬件检测(采用mcelog)
  6. 传统的6d位姿估计fangfa1_李飞飞团队最新论文:基于anchor关键点的类别级物体6D位姿跟踪...
  7. 16速 java_不停歇的 Java 即将发布 JDK 16,新特性速览!
  8. c++ string 字符_C/C++知识分享:C++标准库之 string 类型,各种运算全部掌握
  9. 用 LSTM 做时间序列预测的一个小例子
  10. FreeRTOS内核实现06:任务延时列表
  11. 获取base64编码格式的图片大小
  12. win7旗舰版梦幻桌面高清视频下载
  13. 数据风云、十年变迁(DTCC会议总结)
  14. Sniffing_Spoofing Report
  15. 【系统架构】原型图验收的思考
  16. Android电视kodi安装失败,电视提示“解析包出现错误” ?四种方法教你轻松解决...
  17. 【实践】Ceph:创建Cephfs文件
  18. linux下查看opencv安装路径以及版本号;多个opencv管理
  19. php关于控制器和操作系统,ThinkPHP控制器学习(一)
  20. Altium Designer(11): Visio编辑

热门文章

  1. 生成模型(四):扩散模型(Diffusion Models)
  2. OPPO手机新专利曝光!180°旋转摄像头,或能引领摄像新风尚
  3. SassScript(sass使用)
  4. HTML+css 会旋转的可乐瓶子
  5. Ubuntu18 + laravel + JavaBridge + 招行国密加解密
  6. 微信后台架构浅析--读写扩散技术
  7. 读书笔记-深度学习推荐系统4-推荐与embedding
  8. 大三学生——要不要上研究生?
  9. UMS512(T)平台最大支持的RAM和ROM是多少?
  10. 这个商品让我想到了什么……