如何在Oracle中列出主动/打开连接?

是否有任何隐藏的表,系统variables或某个特定时刻显示活动连接?

使用V$SESSION视图。

V$SESSION显示每个当前会话的会话信息。

有关更完整的答案,请参阅: http : //dbaforums.org/oracle/index.php?showtopic=16834

 select substr(a.spid,1,9) pid, substr(b.sid,1,5) sid, substr(b.serial#,1,5) ser#, substr(b.machine,1,6) box, substr(b.username,1,10) username, -- b.server, substr(b.osuser,1,8) os_user, substr(b.program,1,30) program from v$session b, v$process a where b.paddr = a.addr and type='USER' order by spid; 

当我想查看从应用程序服务器到数据库的传入连接时,使用以下命令:

 SELECT username FROM v$session WHERE username IS NOT NULL ORDER BY username ASC; 

简单,但有效。

 select username, osuser, terminal, utl_inaddr.get_host_address(terminal) IP_ADDRESS from v$session where username is not null order by username, osuser; 
 select status, count(1) as connectionCount from V$SESSION group by status; 

以下给出了按连接数sorting的操作系统用户列表,这在查找过多资源使用情况时非常有用。

 select osuser, count(*) as active_conn_count from v$session group by osuser order by active_conn_count desc 
 Select count(1) From V$session where status='ACTIVE' / 
 select count(1) "NO. Of DB Users", to_char(sysdate,'DD-MON-YYYY:HH24:MI:SS') sys_time from v$session where username is NOT NULL;