Query LOCK e numero sessioni Oracle

.

L’articolo Query LOCK e numero sessioni Oracle vi sarà di grande aiuto, sopratutto quando il gruppo applicativo è fermo per via degli errori provenienti dal database e il manager dietro le spalle che fa domande a raffica giusto per farti perdere ulteriore tempo.

In database molto acceduti, può capitare che, tra le numerose richieste che arrivano dagli application server, più sessioni insistono sulla stessa tabella o partizione.

Le numerose operazioni DML su oggetti già utilizzati da altre sessioni sono la principale causa di contese e tradotto in parole povere, attese che possono creare pericolosi colli di bottiglia.

Quindi, quando ci vengono segnalate situazioni di LOCK, dobbiamo essere pronti nell’individuare la sessioni che sta causando il blocco.

Analizzando la vista V$LOCK, richiamata dalla seguente query, abbiamo la possibilità di individuare informazioni utili per raggiungere il nostro scopo, ossia individuare con precisione la sessione che sta determinando la contesa.

Con la seguente query troverete quale sessione sta determinando i forti rallentamenti o il blocco del database in breve tempo.

Vi sarà indicato il SID che sta determinando il blocco e il numero di sessioni che sono bloccate.

Query LOCK e numero sessioni Oracle:

SELECT bs.sid BSID, count(ws.sid) as NumWait 
FROM v$lock hk, v$session bs, v$lock wk, v$session ws 
WHERE hk.BLOCK = 1 AND wk.TYPE(+) = hk.TYPE AND wk.id1(+) = hk.id1 
AND wk.id2(+) = hk.id2 AND hk.sid = bs.sid(+) 
AND wk.sid = ws.sid(+) AND bs.sid != ws.sid group by bs.sid 
order by 2 desc;

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

Lascia un commento

Wordpress Social Share Plugin powered by Ultimatelysocial