Uma maneira possível pode ser aumentar o
INIT.ORA
parâmetro para distributed_lock_timeout
para um valor maior. Isso lhe daria mais tempo para observar o v$lock
mesa, pois as fechaduras durariam mais. Para obter a automação disso, você pode
-
Execute um trabalho SQL a cada 5-10 segundos que registra os valores dev$lock
ou a consulta que o sandos deu acima em uma tabela e, em seguida, analise-a para ver qual sessão estava causando o bloqueio.
-
Execute umSTATSPACK
ou umAWR
Relatório. As sessões que foram bloqueadas devem aparecer com alto tempo decorrido e, portanto, podem ser identificadas.
v$session
tem mais 3 colunas blocking_instance, blocking_session, blocking_session_status
que pode ser adicionado à consulta acima para fornecer uma imagem do que está sendo bloqueado.