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$locknebo dotaz, který sandos zadal výše, do tabulky a poté jej analyzujte, abyste zjistili, která relace způsobila zámek. -
Spusťte
STATSPACKneboAWRZprá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á.