Comment lister les connexions actives / ouvertes dans Oracle?

Existe-t-il une table cachée, une variable système ou quelque chose pour afficher les connexions actives à un moment donné?

135
demandé sur ROMANIA_engineer 2009-06-25 14:19:21

9 réponses

Utiliser le V$SESSION vue.

V$SESSION affiche les informations de session pour chaque session en cours.

157
répondu PaulJWilliams 2016-02-19 08:37:48

Pour une réponse plus complète voir: 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; 
91
répondu ehrhardt 2012-02-01 09:50:33

Lorsque je souhaite afficher les connexions entrantes de nos serveurs d'applications vers la base de données, j'utilise la commande suivante:

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

Simple, mais efficace.

26
répondu user2021477 2013-01-29 11:33:02
select
  username,
  osuser,
  terminal,
  utl_inaddr.get_host_address(terminal) IP_ADDRESS
from
  v$session
where
  username is not null
order by
  username,
  osuser;
5
répondu user3848789 2015-06-15 06:37:53

Ce qui suit vous donne la liste des utilisateurs du système d'exploitation triés par nombre de connexions, ce qui est utile lorsque vous recherchez une utilisation excessive des ressources.

select osuser, count(*) as active_conn_count 
from v$session 
group by osuser 
order by active_conn_count desc
4
répondu jediz 2017-10-04 20:57:00
Select count(1) From V$session
where status='ACTIVE'
/
3
répondu Juber 2015-06-15 06:37:40
select status, count(1) as connectionCount from V$SESSION group by status;
3
répondu user3285705 2016-12-08 22:48:58
select s.sid as "Sid", s.serial# as "Serial#", nvl(s.username, ' ') as "Username", s.machine as "Machine", s.schemaname as "Schema name", s.logon_time as "Login time", s.program as "Program", s.osuser as "Os user", s.status as "Status", nvl(s.process, ' ') as "OS Process id"
from v$session s
where nvl(s.username, 'a') not like 'a' and status like 'ACTIVE'
order by 1,2

Cette requête tente de filtrer tous les processus d'arrière-plan.

3
répondu Alan 2017-11-21 09:21:49
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;
1
répondu kirankumar M 2017-05-24 00:45:58