Jedním z možných způsobů může být zvýšení INIT.ORA
parametr pro distributed_lock_timeout
na větší hodnotu. To by vám pak poskytlo delší čas na sledování v$lock
stůl, protože zámky by vydržely déle.
Chcete-li toho dosáhnout automatizace, můžete buď
-
Každých 5–10 sekund spusťte úlohu SQL, která zaznamenává hodnoty
v$lock
nebo dotaz, který sandos zadal výše, do tabulky a poté jej analyzujte, abyste zjistili, která relace způsobila zámek. -
Spusťte
STATSPACK
neboAWR
Zpráva. Relace, které byly uzamčeny, by se měly objevit s velkým uplynulým časem, a proto je lze identifikovat.
v$session
má 3 další sloupce blocking_instance, blocking_session, blocking_session_status
které lze přidat do výše uvedeného dotazu, abyste získali obrázek o tom, co se zamyká.