查找ORACLE进程和会话信息

-- 供管理员查找所有会话的详细信息
select
p.spid SRV_PID, p.USERNAME SRV_USER, p.TERMINAL SRV_TERM, p.PROGRAM SRV_PROG,
s.SID, s.SERIAL#, s.USERNAME DB_USER, s.LOGON_TIME, s.STATUS, s.OSUSER CLI_USER, s.PROCESS CLI_PID, s.MACHINE CLI_HOST, s.TERMINAL CLI_TERM, s.PROGRAM CLI_PROG
from v$process p, v$session s
where p.addr = s.paddr(+) -- 1)session标志为KILLED其PADDR已经被修改; 2)D000和S000后台进程
and p.pid <> 1 -- PID=1的是PSEUDO进程,对我们没有实际意义
--and sid in (select sid from v$mystat where rownum <2) -- 查询自己会话的信息
/

注意:p.addr = s.paddr(+)表明可能存在有进程无会话的情况。有(但可能不限于)两种情况:
1)session已经被KILLED,还没有被完全清楚,其PADDR已经被修改。也就是说原来的进程已经不再与该session关联了;
2)当启用共享服务器连接时,D000和S000后台进程在空闲时,也是没有session与其关联的。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9844649/viewspace-580019/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9844649/viewspace-580019/

THE END
< <上一篇
下一篇>>