在linux中使用TOP查看进程时,发现以下三个进程占了我四个CPU中的三个,而且一直都这样PID  USER   PRI  NI  SIZE  RSS  SHARE  STAT  LIB  %CPU   %MEM    TIME   COMMAND
333  oracle  25  0  22838  4560  1736   R     0   99.9   0.0    806:27   perl
453  oracle  25  0  22836  1752  4044   R     0   99.9   0.3    7295m    perl
654  oracle  25  0  22836  7696  3496   R     0   99.9   0.2    9996m    perl曾经尝试执行emctl stop dbconsole命令,执行完后依然没有效果,请各位大侠赐教!

解决方案 »

  1.   

    上面列出的都是oracle服务器进程
    CPU占用太高,可以查一下相关的进程在运行什么语句
    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;--getsid.sql 通过Top或ps中看到的PID得到session 信息
    SELECT SID, SERIAL#, USERNAME, MACHINE
      FROM v$session b
     WHERE b.paddr = (SELECT addr FROM v$process c WHERE c.spid = '&pid');
      

  2.   

    首先谢谢你的回复,这些都试过,但什么也没查到,其实从TIME那一列都知道不太可能是在执行SQL,因为都差不多运行了10000分钟了,如果是SQL,估计早就挂了。