Netsis Deadlock Sorunu: SQL Server Eşzamanlı İşlem Çakışması

Blog › Hata Çözümü › Netsis Deadlock

Netsis Deadlock Sorunu: Eşzamanlı İşlem Çakışması Çözümü

Netsis te aynı anda birçok kullanıcı işlem yaparken “Transaction was deadlocked” hatası alıyor musunuz? Deadlock, SQL Server da iki transaction ın birbirinin kilidini beklerken oluşur. Bu rehberde sebep ve çözümü anlatıyoruz.

Deadlock Nedir?

İki transaction birbirinin kilitlemesini beklediğinde oluşan kısırdöngüdür. SQL Server bunu tespit eder ve birini “kurban” olarak öldürür (deadlock victim).

Sebepler

  • Yüksek eşzamanlı kullanıcı: 50+ kullanıcı aynı tablolara erişiyor
  • Kötü tasarlanmış sorgular: Uzun süreli işlem, geniş row lock
  • Eksik indeks: Sorgu tablo taraması yapıyor, daha fazla satır kilitleniyor
  • Yanlış isolation level: SERIALIZABLE level’da deadlock daha sık

Tespit ve Analiz

SQL Server Profiler / Extended Events

-- Deadlock graph izleme
CREATE EVENT SESSION [DeadlockMonitor] ON SERVER
ADD EVENT sqlserver.xml_deadlock_report
ADD TARGET package0.event_file (SET filename = "C:\\Logs\\deadlock.xel");
ALTER EVENT SESSION [DeadlockMonitor] ON SERVER STATE = START;

Sistem View

SELECT * FROM sys.dm_tran_locks WHERE request_status = "WAIT";

Çözüm Yaklaşımları

1. İndeks Optimizasyonu

En etkili çözüm. Eksik indeksler tablo taramasına yol açar, geniş row lock üretir.

SELECT * FROM sys.dm_db_missing_index_details;

2. Isolation Level Optimizasyonu

READ COMMITTED SNAPSHOT ISOLATION (RCSI) açın:

ALTER DATABASE [NETSIS_DB] SET READ_COMMITTED_SNAPSHOT ON;

Bu lock yerine row versioning kullanır, deadlock azalır.

3. Transaction Süresini Kısaltın

Uzun süren BEGIN TRAN … COMMIT bloklarını parçalara bölün.

4. Erişim Sırasını Standartlaştırın

Tüm transaction lar tabloları aynı sırada açsın (örneğin: önce CARI, sonra STOK, sonra SIPARIS).

5. Retry Logic

Deadlock victim olduğunda otomatik tekrar dene. Netsis te uygulama seviyesinde özel kod gerekir.

Önleyici Tedbirler

  • ✅ Aylık missing index raporu
  • RCSI aktif
  • Long running transactions monitörü
  • İndeks fragmentation kontrolü
  • SQL Server güncel sürüm (2019+ daha akıllı deadlock detection)

Çoklu kullanıcılı Netsis ortamlarında deadlock optimizasyonu uzmanlık ister. Bakım anlaşmamızda deadlock graph monitör ve aylık optimizasyon önerisi dahildir.

Bu konuda profesyonel destek mi gerekiyor?

Logo Yazılım yetkili Netsis bayisi olarak 7/24 hizmetinizdeyiz.

💬