`
楚若之夜
  • 浏览: 121747 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

查询占CPU高的oracle进程先关sql信息

 
阅读更多

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;

分享到:
评论

相关推荐

    如何查询占CPU高的oracle进程

    oracle占用cpu过高怎么处理,本文将介绍有关oracle进程CPU占用率过高的问题,需要了解跟多的朋友可以参考下1:首先使用TOP命令传到占用CPU高的SPID号 PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND 3575...

    Oracle数据库CPU使用率过高处理记录

     运行在Windows上的Oracle开发库的oracle进程CPU使用率保持在99%,服务器和数据库均反应缓慢。  二、排查思路  可能造成CPU使用率高的情况有:大量排序、大量SQL解析、全表扫描、Oracle Bug等。因此希望找到...

    获取top前10个Oracle的进程(支持多实例)

    X、通过top找出占用资源的Oracle进程 Y、通过ps确定这个Oracle进程所说实例 Z、连接对应的Oracle实例找出执行SQL B、进行了占用内存大小自动转换,快速查看占有大小是G、M、K 3、将来版本 A、提供Socket侦听,...

    SQL Monitor for Oracle,MySQL和DB2 v2.4.3.6 中文绿色版

    SQL Monitor for Oracle,MySQL and DB2 是款免费的数据库跟踪工具,专门用来分析CPU使用率高的问题。 软件功能: 1. 监控SQL Server的进程和Job,查看当前执行的SQL/命令,并终止之。 2. 对象浏览器,跟 SQL Server...

    Oracle数据库日常维护方案书.docx

    检查消耗 CPU 最高的进程 检查碎片程度高的表 检查表空间的 I/O 比例 检查文件系统的 I/O 比例 检查死锁及处理 检查数据库 cpu、I/O、内存性能 查看是否有僵死进程 检查行链接/迁移 定期做统计分析 ...

    Oracle性能优化

    并且ORACLE是一个提供并行能力的数据库系统,在CPU方面的要求就更高了,如果运行队列数目超过了CPU处理的数目,性能就会下降,我们要解决的问题就是要适当增加CPU的数量了,当然我们还可以将需要许多资源的进程KILL...

    ORACLE9i_优化设计与系统调整

    第一部分 ORACLE系统优化基本知识 23 第1章 ORACLE结构回顾 23 §1.1 Oracle数据库结构 23 §1.1.1 Oracle数据字典 23 §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 §1.2.1...

    Oracle 主要配置文件介绍

    INTERVAL=60 5 存储追踪和告警文件的路径 user_dump_dest 指定记录 Oracle 用户进程产生的追踪和告警信息的文件的 存放路径 background_dump_dest 指定记录 Oracle 后台进程产生的追踪和 告警信息的...

    深入解析Oracle.DBA入门进阶与诊断案例

    针对数据库的启动和关闭、控制文件与数据库初始化、参数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题,本书从基础知识入手...

    oracle动态性能表

     CPU used by this session:所有session的cpu占用量,不包括后台进程。这项统计的单位是百分之x秒.完全调用一次不超过10ms  db block changes:那部分造成SGA中数据块变化的insert,update或delete操作数 这项...

    Oracle数据库管理员技术指南

    1.2.3 怎样配置符合 OFA 的 Oracle 文件 系统 1.3 规划数据库文件布局 1.3.1 最大化可用性的规划 1.3.2 最小化磁盘争用的规划 1.4 建立参数文件 1.4.1 配置参数的一些注意事项 1.4.2 建立参数文件的连接 ...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

    基本信息 原书名: OCA/OCP Oracle Database 11g All-in-One Exam Guide with CD-ROM: Exams 1Z0-051, 1Z0-052, 1Z0-053 原出版社: McGraw-Hill Osborne Media 作者: (美)John Watson Roopesh Ramklass Bob Bryla ...

    Oracle DBA笔试及面试题汇总

     2:Oracle的系统进程有哪些?作用是什么?  3:本地管理表空间和字典管理表空间的特点,ASSM有什么特点?  4:备份如何分类?  5:如果一个表被drop,在有完善的归档和备份的情况下,如何恢复  6:rman是什么,有...

    ORACLE数据库物理分布设计.doc

    所以用户应该确保所有Oracle的进程、后台进程、用户进程具有相同的优先级, 否则就会产生恶化的现象, 导致高优先级的进程等待低优先级的进程处理完毕释放出CPU资源后再处理, 更不能将Oracle的后台进程绑定到CPU中, ...

    Oracle9i的init.ora参数中文说明

    Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...

    第6课 Oracle性能优化(之一)

    如果查到CPU的占用率非常高,取出PID,并查看对应的SQL语句 select vs.SID 会话id, vs.SERIAL# 会话SERIAL, vp.SPID 系统进程号, vs.USERNAME 用户名, vs.PROGRAM 应用程序, vs.STATUS 状态, vq.SQL_TEXT...

    oracle数据库dba管理手册

    2.3.4 多处理器:并行查询和并行装载 选项 41 2.3.5 客户机/服务器数据库应用 42 2.3.6 三层体系结构 43 2.3.7 Oracle透明网关访问 44 2.3.8 备用数据库 44 2.3.9 复制型数据库 45 2.3.10 外部文件访问 45 第3章 ...

    Oracle数据库日常维护手册

    1.2. 检查 ORACLE 服务进程.............................................................................................. 4 1.3. 检查 ORACLE 监听状态........................................................

Global site tag (gtag.js) - Google Analytics