Query per vedere l’utilizzo di risorse delle SESSIONI ATTIVE

Query per vedere l’utilizzo di risorse delle SESSIONI ATTIVE

.

Con l’articolo Query per vedere l’utilizzo di risorse delle sessioni attive,
vediamo informazioni utili per individuare le sessioni
che stanno utilizzando
un eccessivo consumo di risorse.

Dalla query selezioniamo l’istanza di provenienza,
l’utente proprietario,
l’utente del sistema operativo,
la macchina e
il programma di provenienza.

Inoltre visualizziamo le informazioni relative ai consumi di risorse
della sessione attiva.

I campi selezionati sono:

INST_ID – Numero identificativo dell’istanza del RAC
SID – Numero identificativo della sessione
USERNAME – Nome utente con cui è stata eseguita la sessione
SQL_ID – Numero identificativo dello statement
PROGRAM – Software da cui proviene la sessione
MACHINE – Nome macchina da cui proviene la sessione
OSUSER – Nome dell’utente del sistema operativo
EXECUTIONS – Numero totale delle esecuzioni dello statement
BUFFER_GETS – Memoria di BUFFER CHACE utilizzata da ogni singola
DISK_READS – Letture disco eseguite da ogni singola esecuzione
ELAPSED_TIME – Tempo di esecuzione per ogni singola esecuzione

Inoltre recuperiamo le informazioni dalle tabelle
GV$SESSION e
GV$SQL.

Infine mettiamo il risultato in relazione dalle JOIN
a.INST_ID=b.INST_ID,
a.SQL_CHILD_NUMBER=b.CHILD_NUMBER
a.SQL_ID=b.SQL_ID

In aggiunta, i record sono filtrati per:
USERNAME diverso da SYS e
SESSIONI ATTIVE.

Query per vedere l’utilizzo di risorse delle SESSIONI ATTIVE:

col I for 9
col sid for 9999
col LAST_LOAD_TIME for a22
col buff_gets for 99999999999
col executions for 99999999999
col sql_text for a100 wrap
set long 10000
col osuser for a8
col machine for a10
col buff_get for 9999999999
col Secs for 999,99
col username for a16
col program for a34
col sql_child for 9999
col disk for 9999999
col cpu for 99999999
col cld for 999
col cpu for 99999999
set linesize 400
select a.inst_id as I, a.sid, a.username , a.sql_id, a.program ,machine , osuser, executions, BUFFER_GETS/(executions+1) as buff_get,DISK_READS/(executions+1) as disk , ((ELAPSED_TIME)*power(10,-6))/(Executions+1) as Secs
  from gv$session a , gv$sql b
 where a.inst_id=b.inst_id and 
       a.sql_child_number=b.child_number and
       a.sql_id=b.sql_id and status='ACTIVE' and
       service_name not like 'SYS%' and
       username not like 'SYS%' 
order by 3,4 ;

Lascia un commento

Wordpress Social Share Plugin powered by Ultimatelysocial