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