11g查看性能慢sql的一个方法

来源:互联网 发布:桌面管理软件 知乎 编辑:程序博客网 时间:2024/06/16 16:33
select *
  from (select a.sid,
               a.sql_id,
               a.status,
               a.cpu_time / 1000000,
               a.buffer_gets,
               a.DISK_READS,
               b.SQL_TEXT
          from v$sql_monitor a, v$sql b
         where a.SQL_ID = b.SQL_ID
         order by a.CPU_TIME desc)

 where rownum <= 20;



v$sql是实时统计数据,可以定位消耗资源的sql


 select a.USERNAME,
        a.OPNAME,
        b.SQL_TEXT,
        to_char(a.START_TIME, 'DD-MON-YY HH24:MI'),
        a.ELAPSED_SECONDS,
        a.TIME_REMAINING,
        a.SOFAR,
        round(a.SOFAR / a.TOTALWORK * 100, 2)
   from v$session_longops a, v$sql b
  where a.SQL_ADDRESS = b.ADDRESS
    and a.SQL_HASH_VALUE = b.HASH_VALUE
    and a.SOFAR <> a.TOTALWORK
    and a.TOTALWORK != 0;


查看消耗cpu的操作系统进程

ps -e -o pcpu,pid,user,tty,args|sort -n -k 1 -r |head



0 0
原创粉丝点击