En mulig måde kunne være at øge INIT.ORA
parameter for distributed_lock_timeout
til en større værdi. Dette vil så give dig længere tid til at observere v$lock
bord, da låsene ville holde længere.
For at opnå automatisering af dette kan du enten
-
Kør et SQL-job hvert 5.-10. sekund, der logger værdierne for
v$lock
eller den forespørgsel, som sandos har givet ovenfor i en tabel, og analyser den derefter for at se, hvilken session der forårsagede låsen. -
Kør en
STATSPACK
eller enAWR
Rapport. De sessioner, der blev låst, skulle dukke op med lang forløbet tid og kan derfor identificeres.
v$session
har 3 kolonner mere blocking_instance, blocking_session, blocking_session_status
som kan tilføjes til forespørgslen ovenfor for at give et billede af, hvad der bliver låst.