DBAtlas · Veritabanı operasyon atlası

1205: Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim

SQL Server

Ne demek?

İki veya daha fazla transaction birbirinin tuttuğu lock'ları karşılıklı beklerken kilitlenir (deadlock). SQL Server bu döngüyü kırmak için transaction'lardan birini kurban seçip geri alır (rollback).

Neden olur?

Transaction'ların tabloları/satırları farklı sıralarda kilitlemesi, uzun süren transaction'lar, eksik index'ler yüzünden geniş taramalar, lock escalation ve yüksek eşzamanlılık tipik nedenlerdir.

Nasıl çözülür?

Uygulamada 1205 hatasını yakalayıp işlemi otomatik yeniden deneyin (retry). Tüm transaction'larda nesnelere aynı sırada erişin, transaction'ları kısa tutun. Deadlock grafiğini inceleyin: Extended Events (system_health oturumu) veya trace flag 1222 ile ayrıntıyı görün. Uygun index ekleyerek tarama ve kilitlenmeyi azaltın. Gerekirse READ COMMITTED SNAPSHOT (RCSI) yalıtım düzeyini değerlendirin.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar