Salah satu cara yang mungkin adalah dengan meningkatkan INIT.ORA
parameter untuk distributed_lock_timeout
ke nilai yang lebih besar. Ini akan memberi Anda waktu lebih lama untuk mengamati v$lock
meja karena kunci akan bertahan lebih lama.
Untuk mencapai otomatisasi ini, Anda dapat
-
Jalankan tugas SQL setiap 5-10 detik yang mencatat nilai
v$lock
atau kueri yang diberikan sandos di atas ke dalam tabel, lalu menganalisisnya untuk melihat sesi mana yang menyebabkan penguncian. -
Jalankan
STATSPACK
atauAWR
Laporan. Sesi yang dikunci akan muncul dengan waktu berlalu yang tinggi dan karenanya dapat diidentifikasi.
v$session
memiliki 3 kolom lagi blocking_instance, blocking_session, blocking_session_status
yang dapat ditambahkan ke kueri di atas untuk memberikan gambaran tentang apa yang dikunci.