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

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

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

发现会话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

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

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

你可能感兴趣的:(查看占用CPU、内存较多的程序及客户端)