Query per vedere informazioni delle sessioni ATTIVE che consumano più risorse

Pubblicato da Patrizia Gardis il

Con l’articolo Query per vedere i dettagli delle sessioni ATTIVE
che consumano più risorse macchina,
forniamo una query per analizzare le sessioni ATTIVE
che utilizzano maggiormente le risorse a disposizione del database.

Inoltre selezioniamo i campi SID,
SQL_ID,
l’utente con cui viene aperta la sessione,
l’utente del sistema operativo
e l’evento associato alla sessione.

Infine vediamo l’utilizzo di risorse
oltre al numero di esecuzione,
ossia quante volte è stata eseguita e la durata di attesa.

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 è partita la sessione
MACHINE – Nome macchina da cui è partita la sessione
OSUSER – Nome utente del sistema operativo da cui è partita la sessione
EXECUTIONS – Numero totale di esecuzione dello statement
BUFFER_GETS – Memoria utilizzata effettuate da ogni singola esecuzione
DISK_READS – Letture disco effettuate da ogni singola esecuzione
ELAPSED_TIME – Tempo di esecuzione di ogni singola esecuzione

Le informazioni sono recuperate dalle tabelle
GV$SESSION e
GV$SQL,
le quali sono messe in relazione dalle JOIN
a.INST_ID=b.INST_ID,
a.SQL_ID=b.SQL_ID,
a.SQL_CHILD_NUMBER=b.CHILD_NUMBER.

Infine filtriamo i record per sessioni attive e
per un valore di BUFFER_GETS per esecuzione
superiore a 90000 e
per un valore di DISK_READS per esecuzione
superiore a 5000.

col inst_id for 9999 col sid for 99999 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 a10 col machine for a12 col buff_get for 99999999999 col program for a34 col Secs for 999,99 col username for a12 col disk for 999999 col cld for 99 col exec for 999999 set linesize 400 col Is for 9 select a.inst_id as I , a.sid, a.username , a.sql_id, a.program ,machine , osuser,executions as exec , BUFFER_GETS/(executions+1) as buff_get, disk_reads/(executions+1) as disk, ((ELAPSED_TIME)*power(10,-6))/(Executions+1) as Secs, buffer_gets/(fetches+0.1) as "Buf/Fetch" from gv$session a , gv$sql b where a.inst_id=b.inst_id and a.sql_id=b.sql_id and a.sql_child_number=b.child_number and status='ACTIVE' and service_name not like 'SYS%' and username not like 'SYS%' and ( BUFFER_GETS/(executions+1) > 90000 or disk_reads/(executions+1)> 5000 ) order by a.sql_id;

Query sessioni ATTIVE
Customer care, care for employees, human resources, life insurance, employment agency and marketing segmentation concepts. Wide banner composition with bokeh background.

Stay tuned! Non solo Query per vedere le sessioni ATTIVE

Per visionare le mie guide sui Comandi CRS clicca qui!
A questo LINK, invece, troverai le query SQL

Resta aggiornato sulle nostre attività entrando a far parte della nostra community:
Facebook
Youtube
Linkedin

Per chi ancora non lo avesse fatto, consigliamo di salvare tra i propri bookmark questo sito, così da avere sempre a portata di mano le nsotre soluzioni ai problemi più comuni su database, in particolar modo, database oracle.


0 commenti

Lascia un commento

Segnaposto per l'avatar