根据进程id查看进程在做什么(执行的sq语句)

        有时候会见到一个操作进程占用了很多系统资源,此时需要弄清楚这个进程是在干什么,将红色标记的部分替换成操作系统进程id(PID)即可。

 select distinct
‘-------------------------------------------‘||chr(10)||
‘USERAME    :‘ || s.username   || chr(10) ||
‘SCHEMA     :‘ || s.SCHEMANAME || chr(10) ||
‘OSUSER     :‘ || s.osuser     || chr(10) ||
‘PROGRAM    :‘ || s.program    || chr(10) ||
‘SPID       :‘ || s.sid        || chr(10) ||
‘SERIAL#    :‘ || s.serial#    || chr(10) ||
‘KILL STRING:‘ || ‘‘‘‘|| s.sid || ‘,‘ || s.serial# || ‘‘‘‘ || chr(10) ||
‘MACHINE    :‘ || s.machine    || chr(10) ||
‘TYPE     :‘ || s.type       || chr(10) ||
‘TERMINAL   :‘ || s.terminal   || chr(10) ||
‘SQL ID     :‘ || q.sql_id     || chr(10) ||
‘SQL TEXT   :‘ || q.sql_text into block_info
FROM v$session s
    ,v$process p
    ,v$sql q
WHERE s.paddr = p.addr
AND   s.sid = bsid
and   s.sql_id = q.sql_id(+);
dbms_output.put_line(block_info);
end;

本文出自 “ORACLE/DB2/MYSQL” 博客,谢绝转载!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。