DBAtlas · Veritabanı operasyon atlası

ORA-00060: Deadlock detected while waiting for resource

Oracle

Ne demek?

İki veya daha fazla oturum, birbirinin tuttuğu kaynağı beklerken karşılıklı kilitlenmiş (deadlock). Oracle döngüyü tespit edip kurbanı seçer ve o oturumun ifadesini geri alır.

Neden olur?

Row lock'larının farklı sıralarda alınması, aynı satırların farklı transaction'lar tarafından çapraz güncellenmesi, index'siz foreign key'ler nedeniyle üst tablo güncellemelerinde table lock oluşması veya bitmap index üzerinde eşzamanlı DML.

Nasıl çözülür?

Alert log'da oluşan deadlock trace (graph) dosyasını inceleyerek çakışan SQL'leri ve satırları bulun. Uygulamada tablolara/satırlara her zaman aynı sırada erişin. Foreign key sütunlarına index ekleyin (index'siz FK klasik deadlock nedenidir). Transaction'ları kısa tutun ve commit sıklığını gözden geçirin. Deadlock'a düşen transaction'ı uygulamada yakalayıp yeniden deneyin.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar