Eine Möglichkeit wäre, die INIT.ORA
zu erhöhen Parameter für distributed_lock_timeout
auf einen größeren Wert. Das würde Ihnen dann eine längere Zeit geben, die v$lock
zu beobachten Tabelle, da die Sperren länger dauern würden.
Um dies zu automatisieren, können Sie entweder
-
Führen Sie alle 5-10 Sekunden einen SQL-Job aus, der die Werte von
v$lock
protokolliert oder die Abfrage, die Sandos oben gegeben hat, in eine Tabelle ein und analysiere sie dann, um zu sehen, welche Sitzung die Sperre verursacht hat. -
Führen Sie ein
STATSPACK
aus oder einAWR
Prüfbericht. Die Sitzungen, die gesperrt wurden, sollten mit einer hohen verstrichenen Zeit angezeigt werden und können daher identifiziert werden.
v$session
hat 3 weitere Spalten blocking_instance, blocking_session, blocking_session_status
die der obigen Abfrage hinzugefügt werden können, um ein Bild davon zu erhalten, was gesperrt wird.