sesion | ExpoDBA

sesion

Jobs running

Muestra los jobs que se están ejecutando actualmente.
Por cada job indica datos de la sesion y proceso del job, ultima ejecución, horario de inicio de la ejecución actual, el estado del mismo y el what de lo que está ejecutando.

alter session set nls_date_format='dd/mm/yyYY hh24:mi:ss';
set lines 100
set pages 150
col event for a30

Tiempo de conexión de las sesiones de un usuario

Muestra para un usuario determinado, las conexiones que tiene activas y cuanto tiempo de conexión lleva cada una.

col machine for a30
select  sid, serial#, machine, (sysdate - logon_time)*24*60 min  
from v$session 
where username = '&username';

SID, PID y otros datos de CURRENT SESSION

Muestra SID,  PID y otros datos referentes a la sesión con la que se ejecuta la consulta

set linesize 200
col username for a20
col osuser for a20
col machine for a30

select s.sid, s.serial#, p.spid "os pid", s.username, s.osuser, s.machine, s.program
from v$session s, v$process p
where p.addr = s.paddr

Estadísticas de esperas por sesion

Esta consulta muestra los tiempos de espera que una sesion en cada uno de los eventos que estuvo.
La vista v$session_wait muestra por cada SID activo en la base, estadísticas sobre sus estados.

select event, round(sum(time_waited)/100,2)
from v$session_event
where sid = &sid
group by event
order by 2; 

Filtrar sesiones por HASH_VALUE ejecutado

Cuando tenemos un HASH_VALUE que representa un plan de ejecución no válido, es probable que queramos saber que sesiones son las que ejecutan ese plan en un momento dado.

Para esto, esta consulta puede mostrarnos datos particulares de una sesion que ejecuta un hash_value en particular

select sid, serial#, username, osuser, program, logon_time
from v$session s
where sql_hash_value = '&HASH_VALUE';

LIBRARY CACHE PIN event (Lock y Enqueues)

Muestra en una misma lista las sesiones que tienen Library Cache Lock y en la siguiente fila, los objetos esperando por la liberación de ese lock (eventos en library cache pin).
Muy útil para identificar las sesiones que generan los enqueues en library cache pin.

  /*Muestra sesiones en library cache pin y sus holders*/
   SELECT s.sid, serial#,
   decode (kglpnmod,
    0, 'none (0)',
    2, 'Share (2)',
    3, 'Exclusive (3)') "HOLDED",
   decode (kglpnreq,
    0, 'none (0)',

Sesiones en LIBRARY CACHE PIN event

Esta consulta muestra por cada sesion esperando por library cache pin el tipo de pin que requiere, el namespace que utiliza, además del sid de la sesión que genera el bloqueo.

/*Debe ser ejecutado como SYS o como INTERNAL*/
/*Lista información de las sesiones esperando en library cache pin*/

col "Handle address" format a16
col Namespace format a13
col Holder_sid format 999999999

Obtiene OS PID a partir de un Oracle SID

Permite obtener el pid de una sesion de Oracle en el SO.
Además trae datos complementarios de la sesión.

SELECT a.sid, a.username, a.status, b.spid, a.program
FROM v$session a, v$process b
WHERE a.paddr = b.addr
AND a.sid  = &sid
/

Espacio ocupado por usuario en tablespace temporal

Muestra el espacio ocupado en cada temporary tablespace por cada sesion que la esté usando.

col username format a15
col mb format 999,999

select  su.username, ses.sid, ses.serial#, su.tablespace,
             ceil((su.blocks * dt.block_size) / 1024/1024) MB
from    v$sort_usage  su, 
		dba_tablespaces t,

Cantidad de sesiones por usuario

Muestra cantidad de sesiones por usuario en la base de datos.

Select username, count(9)
from gv$session
group by username
order by 2 desc;