DBAtlas · Veritabanı operasyon atlası

enq: TX - row lock contention: Wait: oturum, başka bir transaction'ın tuttuğu row-level lock'ı bekliyor

Oracle

Ne demek?

Bir oturum, başka bir işlemin tuttuğu row lock'un serbest kalmasını bekliyor. Klasik uygulama düzeyi lock wait event'idir.

Neden olur?

Aynı satırı güncellemeye çalışan eşzamanlı transaction'lar, uzun süre commit edilmeyen transaction'lar, index'siz foreign key nedeniyle geniş kilitlenme veya sıralı anahtar (hot block) üzerinde yoğunlaşma.

Nasıl çözülür?

Engelleyen ve engellenen oturumları bulun: SELECT * FROM v$session WHERE blocking_session IS NOT NULL; ayrıca v$lock ile eşleştirin. Kök nedeni uzun transaction'lar ise commit stratejisini gözden geçirin. Foreign key sütunlarına index ekleyin. Hot row'lar için tasarımı (sequence, hash) yeniden düşünün. Gerektiğinde engelleyen oturumu sonlandırın.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar