zoukankan      html  css  js  c++  java
  • Oracle服务器定位CPU使用率高的瓶颈(SQL)

    1.首先用TOP命令监控系统资源,如果是AIX系统,就用topas,进入TOP命令的滚动刷新数据时,发现userCPU高达98%!!

    保持top的状态下,按shift+p,可以将所有进程按CPU使用率高低排序,这样可以了解消耗CPU最多的进程是哪些

    2 现在v$process 视图中找到pid对应的地址addr,将进程号pid和oracle的session联系起来

    SQL:select addr from v$process where spid=172928;

    简介:v$process视图包含当前系统oracle运行的所有进程信息。常被用于将oracle或服务进程的操作系统进程ID与数据库session之间建立联系。也就是可以通过进程PID来寻找数据库的session)

    再通过刚才的addr,在v$session表找到对应的sql_id

    SQL:select sql_id from v$session where paddr='00000003CEA444C8';

    再通过sql_id可以找到对应的SQL是哪条

    SQL:select * from v$sql where sql_id = '00000003CEA444C8';

    实际上,上面是三个SQL可以联表,

    SQL如下:

    select t3.SQL_TEXT

      from v$process t1

     inner join v$session t2

        on t1.ADDR = t2.PADDR

     inner join v$sql t3

        on t2.SQL_ID = t3.SQL_ID

     where t1.SPID = 172928(这个pid就是进程id);

  • 相关阅读:
    【BZOJ1015】星球大战starwar
    【BZOJ1878】HH的项链
    【BZOJ1012】最大数maxnumber
    【BZOJ3767】A+B Problem加强版
    【BZOJ1406】密码箱
    【BZOJ1067】降雨量
    【BZOJ1305】dance跳舞
    【BZOJ1509】逃学的小孩
    【BZOJ1103】大都市meg
    【BZOJ3262】陌上花开
  • 原文地址:https://www.cnblogs.com/sddychj/p/6840586.html
Copyright © 2011-2022 走看看