Jednym z możliwych sposobów może być zwiększenie INIT.ORA
parametr dla distributed_lock_timeout
do większej wartości. To dałoby ci więcej czasu na obserwowanie v$lock
tabeli, ponieważ zamki wytrzymałyby dłużej.
Aby to zautomatyzować, możesz albo
-
Uruchamiaj zadanie SQL co 5-10 sekund, które rejestruje wartości
v$lock
lub zapytanie podane powyżej przez sandos do tabeli, a następnie przeanalizuj je, aby zobaczyć, która sesja spowodowała blokadę. -
Uruchom
STATSPACK
lubAWR
Raport. Sesje, które zostały zablokowane, powinny pojawić się z długim czasem, który upłynął, dzięki czemu można je zidentyfikować.
v$session
ma jeszcze 3 kolumny blocking_instance, blocking_session, blocking_session_status
które można dodać do powyższego zapytania, aby dać obraz tego, co jest blokowane.