查看占用CPU、内存较多的程序及客户端

感觉到数据库有点慢,感觉应该有用户在做什么大的操作,占用了大量的内存或CPU

首先用myora的resource manager组件进行监控一下,这个工具挺好用的,视图话操作;

查看占用CPU、内存较多的程序及客户端_第1张图片

发现会话130占用CPU、逻辑I/O最猛,以及物理I/O和内存都在TOP5中,所以,具体查看一下该会话

select * from sys.v_$session t WHERE t.SID=130;

发现主机为XXXXOBC的机器上通过sqlplus发出的语句

这时想起来,该机器是每天调用抽数的一台机器,于是就找到调用的过程,并发出下列查询语句

SELECT T.SID,
       T.SERIAL#,
       P.TYPE || '-' || P.ID1 || '-' || P.ID2 AS lock_name,
       d.object_name,
       P.LMODE,
       P.REQUEST,
       P.CTIME,
       P.BLOCK,
       H.SQL_TEXT,
       M.NAME,
       M.WAIT_CLASS,
       N.STATUS,
       Y.USN,
       N.XIDSLOT,
       N.XIDSQN,
       Y.NAME
  FROM V$SESSION T
  LEFT JOIN V$PROCESS F ON T.PADDR = F.ADDR
  LEFT JOIN V$LOCK P ON T.SID = P.SID
  LEFT JOIN V$SQL H ON T.PREV_SQL_ID = H.SQL_ID
  LEFT JOIN V$EVENT_NAME M ON T.EVENT = M.NAME
  LEFT JOIN V$TRANSACTION N ON T.TADDR = N.ADDR
  LEFT JOIN dba_objects d ON p.ID1=d.object_id
  LEFT JOIN V$ROLLNAME Y ON N.XIDUSN = Y.USN
  WHERE t.SID=130

发现正在操作的对象就是所调用的程序中的对象;再查看,发现是抽数的天数增大了好几倍,

经调查是业务人员昨天调试程序之后没有调过来的原因;

 

你可能感兴趣的:(oracle,数据库,内存)