您的位置:首页 > 数据库

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

2015-06-08 19:41 281 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: