博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高cpu占用sql的诊断流程
阅读量:4177 次
发布时间:2019-05-26

本文共 1308 字,大约阅读时间需要 4 分钟。

高cpu占用sql的诊断流程
top 得到高cpu的进程id
通过进程id(System Process ID)得到sql
SELECT   /*+ ORDERED */
         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
/
为进程开启trace
exec dbms_system.set_sql_trace_in_session(&sid,&serial,true);
等待sql运行一段时间后关闭trace
exec dbms_system.set_sql_trace_in_session(&sid,&serial,false);
得到trace文件
select
      d.value||'/'||lower(rtrim(i.instance, chr(0)))||'_ora_'||p.spid||'.trc' trace_file_name
    from
      ( select p.spid
        from sys.v$mystat m,sys.v$session s,sys.v$process p
        where m.statistic# = 1 and s.sid = m.sid and p.addr = s.paddr) p,
      ( select t.instance from sys.v$thread  t,sys.v$parameter  v
        where v.name = 'thread' and (v.value = 0 or t.thread# = to_number(v.value))) i,
      ( select value from sys.v$parameter where name = 'user_dump_dest') d
/
分析trace文件与解决问题
tkprof rawtrace.trc prftrace.txt explain=apps/apps sys=no
1. [精彩] Oracle诊断案例-如何诊断和解决CPU高度消耗(100%)的数据库问题
http://www.chinaunix.net/old_jh/19/419925.html
2. Oracle诊断案例-Sql_trace之一
http://www.eygle.com/case/sql_trace_1.htm
3. 使用SQL_TRACE进行数据库诊断
http://www.eygle.com/case/Use.sql_trace.to.Diagnose.database.htm

转载地址:http://qitai.baihongyu.com/

你可能感兴趣的文章
不懂 spring 就彻底放弃 Java 吧!
查看>>
从MySQL高可用架构看高可用架构设计
查看>>
可以秒杀全场的SpringCloud微服务电商实战项目,文档贼全!
查看>>
java架构之路(多线程)synchronized详解以及锁的膨胀升级过程
查看>>
java架构之路(多线程)AQS之ReetrantLock显示锁的使用和底层源码解读
查看>>
百度现场面试:JVM+算法+Redis+数据库!(三面)
查看>>
java架构之路(多线程)JMM和volatile关键字
查看>>
创业感悟:技术兄弟为什么一直没有起来
查看>>
(转载)linux命令之十八locate 命令
查看>>
Linux发行光盘(红旗 5.0 SP2发行版,已不使用仅参考)
查看>>
linux下如何将文件打包、压缩并分割成制定大小
查看>>
CentOS6.5升级内核到3.10.28
查看>>
linux内核补丁安装和编译安装
查看>>
(转载)linux命令之十九find 命令
查看>>
(转载)linux命令之二十 find命令之exec
查看>>
(转载)linux命令之二十一find命令之xargs
查看>>
centos下C编程调用libvirt的API访问KVM虚拟机
查看>>
(转载)linux命令之二十四tar命令
查看>>
(转载)linux命令之二十五chgrp命令
查看>>
IntelLinux显卡驱动安装指南
查看>>