1205: Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim
SQL ServerNe 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.
Aynı motorda diğer kayıtlar
- 2627Violation of PRIMARY KEY / UNIQUE KEY constraint. Cannot insert duplicate key in object
- 2601Cannot insert duplicate key row in object with unique index. The duplicate key value is ...
- 547The INSERT/UPDATE/DELETE statement conflicted with the FOREIGN KEY / CHECK constraint
- 18456Login failed for user