2009-06-25 12 views

Respuesta

148

Utilice la vista V$SESSION.

V$SESSION displays session information for each current session.

+3

de error a partir de la línea 1 en el mando: select * from v $ session DE error en la línea de comandos: 1 Columna: 14 informe de error: SQL error: ORA-00903: nombre de la tabla no válida 00903. 00000 - " nombre de tabla no válida " * Causa: * Acción: – pistacchio

+3

O no tiene permisos o no instaló correctamente las vistas de DBA. –

+4

Necesitará la función select_catalog_role. – PaulJWilliams

83

Para una respuesta más completa ver: 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; 
24

Cuando me gustaría ver las conexiones entrantes desde nuestros servidores de aplicación a la base de datos que utilizo el siguiente comando:

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

Simple, pero efectivo.

5
select 
    username, 
    osuser, 
    terminal, 
    utl_inaddr.get_host_address(terminal) IP_ADDRESS 
from 
    v$session 
where 
    username is not null 
order by 
    username, 
    osuser; 
+4

Bienvenido a SO! Proporcione alguna intuición para sus respuestas. – vefthym

2
Select count(1) From V$session 
where status='ACTIVE' 
/
3
select status, count(1) as connectionCount from V$SESSION group by status; 
3

A continuación se da la lista de usuarios del sistema operativo ordenados según número de conexiones, lo cual es útil cuando se busca un uso excesivo de recursos.

select osuser, count(*) as active_conn_count 
from v$session 
group by osuser 
order by active_conn_count desc 
1
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

Si bien este fragmento de código puede resolver la pregunta, [incluyendo una explicación] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) realmente ayuda a mejorar la calidad de su publicación. Recuerde que usted está respondiendo la pregunta a los lectores en el futuro, y es posible que esas personas no sepan los motivos de su sugerencia de código. – DimaSan

1
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 

Esta consulta intenta filtrar todos los procesos de fondo.

Cuestiones relacionadas