Един възможен начин може да бъде да увеличите INIT.ORA
параметър за distributed_lock_timeout
на по-голяма стойност. Това ще ви даде по-дълго време за наблюдение на v$lock
маса, тъй като ключалките ще издържат по-дълго.
За да постигнете автоматизация на това, можете да
-
Изпълнявайте SQL задание на всеки 5-10 секунди, което регистрира стойностите на
v$lock
или заявката, която sandos е дала по-горе в таблица и след това я анализирайте, за да видите коя сесия е причинила заключването. -
Изпълнете
STATSPACK
илиAWR
Докладвай. Сесиите, които са били заключени, трябва да се покажат с дълго изминало време и следователно могат да бъдат идентифицирани.
v$session
има още 3 колони blocking_instance, blocking_session, blocking_session_status
който може да бъде добавен към заявката по-горе, за да даде картина на това какво се заключва.