Un possibile modo potrebbe essere aumentare INIT.ORA
parametro per distributed_lock_timeout
ad un valore maggiore. Questo ti darebbe quindi più tempo per osservare il v$lock
tabella poiché i blocchi dureranno più a lungo.
Per ottenere l'automazione di questo, puoi o
-
Esegui un processo SQL ogni 5-10 secondi che registra i valori di
v$lock
o la query che Sandos ha fornito in precedenza in una tabella e quindi analizzarla per vedere quale sessione stava causando il blocco. -
Esegui un
STATSPACK
o unAWR
Rapporto. Le sessioni bloccate dovrebbero essere visualizzate con un tempo trascorso elevato e quindi possono essere identificate.
v$session
ha altre 3 colonne blocking_instance, blocking_session, blocking_session_status
che può essere aggiunto alla query precedente per fornire un'immagine di ciò che viene bloccato.