主页 > 知识库 > 如何查询占CPU高的oracle进程

如何查询占CPU高的oracle进程

热门标签:温州人工外呼系统 外呼系统口号 地图标注付款了怎么找不到了 百度地图标注员是干什么 外呼系统郑州 贵阳智能电销机器人官网 北京外呼系统公司排名 沈阳400电话是如何办理 北京营销外呼系统厂家
oracle占用cpu过高怎么处理,本文将介绍有关oracle进程CPU占用率过高的问题,需要了解跟多的朋友可以参考下
1:首先使用TOP命令传到占用CPU高的SPID号
PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND
3575 oracle 1 12 0 0K 0K run 748.6H 24.98% oracle
3571 oracle 1 22 0 0K 0K sleep 706.2H 22.84% oracle

2:使用DBA账户登录数据库,使用以下SQL语句查询:
SELECT * FROM V$PROCESS WHERE spid=3575;查询到SQL相关信息
3:根据以上查询到的信息使用以下SQL查询:
SELECT sid, program FROM V$SESSION S WHERE EXISTS(SELECT 1 FROM V$PROCESS WHERE spid=3575 AND ADDR = S.PADDR);
可以查询到具体那个客户端查询一直在不断占用ORACLE资源!
最后对这个查询进行处理!

4.根据SID查得SQLITPUB
复制代码 代码如下:

select sql_textITPUB
from v$sqltext
where a.hashvalue=(select sql_hash_value
from v$session b
where b.SID='sid')
0order by piece ASC;

根据lockwait字段可以查询当前正在等待的锁的相关信息:
复制代码 代码如下:

select * from v$lock where kaddr in (select lockwait from v$session where sid= $sid);
(sql_address,sql_hash_value),(prev_sql_addr,prev_hash_value) 根据这两组字段, 可以查询到当前session正在执行的或最近一次执行的sql语句的详细信息:
select * from v$sqltext where address = sql_address and hash_value = sql_hash_value;

根据PID查SQL相关信息:
复制代码 代码如下:

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'));

根据PID查SQL语句
复制代码 代码如下:

SELECT a.username,a.machine,a.program,a.sid,a.serial#,a.status,c.piece,c.sql_text FROM v$session a,v$process b,v$sqltext c WHERE b.spid='spid' AND b.addr=a.paddr AND a.sql_address=c.address(+) ORDER BY c.piece;

得到进程的sid号:
复制代码 代码如下:

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'));

得到session的sqltext语句:
复制代码 代码如下:

select sql_text from v$sqltext_with_newlines where hash_value in (select SQL_HASH_VALUE from v$session where paddr in (select addr from v$process where spid= 'pid')) order by piece;
您可能感兴趣的文章:
  • Oracle对于死锁的处理方法
  • Oracle外键不加索引引起死锁示例
  • Oracle中查看正在运行的SQL进程脚本分享
  • oracle查看被锁的表和被锁的进程以及杀掉这个进程
  • 探讨:Oracle数据库查看一个进程是如何执行相关的实际SQL语句
  • Oracle查看和修改连接数(进程/会话/并发等等)
  • ORACLE实例的后台进程
  • Oracle删除死锁进程的方法

标签:包头 淮北 通辽 衢州 定西 衡水 温州 潮州

巨人网络通讯声明:本文标题《如何查询占CPU高的oracle进程》,本文关键词  如何,查询,占,CPU,高的,oracle,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《如何查询占CPU高的oracle进程》相关的同类信息!
  • 本页收集关于如何查询占CPU高的oracle进程的相关信息资讯供网民参考!
  • 推荐文章