Netsis Destek

← Blog

#Netsis#Deadlock#SQL Server#Veritabanı#Hata Çözümü

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

Netsis çoklu kullanıcıda deadlock hatası, sebepleri ve 5 etkili çözüm yaklaşımı.

M

Mehmet Bircan

23 Nisan 2026

Kısa cevap: Netsis deadlock hatası, SQL Server’da iki transaction’ın birbirinin kilidini beklemesiyle oluşur ve sunucu birini “kurban” seçip iptal eder. En etkili çözüm eksik indeksleri kapatmak ve READ COMMITTED SNAPSHOT ISOLATION (RCSI) açmaktır; ek olarak transaction sürelerini kısaltıp tablo erişim sırasını standartlaştırmak çakışmayı belirgin biçimde azaltır.

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.

Sıkça Sorulan Sorular

Netsis deadlock hatası veri kaybına yol açar mı?

Hayır. SQL Server deadlock’u tespit edince kurban seçtiği transaction’ı geri alır (rollback), yani o işlemin yarım kalan değişiklikleri tamamen iptal edilir. Veri tutarsız kalmaz; ancak kullanıcı işlemi tekrar kaydetmek zorunda kalır.

RCSI açmak deadlock’ları tamamen ortadan kaldırır mı?

RCSI okuma işlemlerini satır sürümleme (row versioning) ile yürüterek okuyucu-yazıcı çakışmalarını büyük ölçüde azaltır, ancak yazıcı-yazıcı kilitlerini ortadan kaldırmaz. Bu nedenle RCSI’yi indeks optimizasyonu ve kısa transaction’larla birlikte uygulamak gerekir.

Deadlock’ların kaç saniyede oluştuğunu nasıl görebilirim?

Extended Events ile xml_deadlock_report olayını yakalayarak deadlock graph’ında her transaction’ın bekleme süresini ve kilitlediği kaynakları görebilirsiniz. SQL Server varsayılan kilit zaman aşımı sınırsızdır; deadlock tespiti ise yaklaşık 5 saniyede bir çalışan monitör süreciyle yapılır.

Deadlock optimizasyonunu kendimiz mi yapmalıyız yoksa destek mi almalıyız?

Basit indeks eksiklikleri kurum içi çözülebilir, ancak yoğun çoklu kullanıcılı ortamlarda deadlock graph analizi ve isolation level değişiklikleri risk taşır. Periyodik izleme ve aylık optimizasyon için bir bakım anlaşması veya Netsis destek hizmeti almak daha güvenlidir.

MB

Yazar

Mehmet Bircan · Netsis ERP Danışmanı

Giza Teknoloji bünyesinde Logo Netsis ERP danışmanı. Netsis kurulumu, e-Dönüşüm, SQL Server veritabanı yönetimi ve hata çözümü konularında saha deneyimiyle teknik rehberler hazırlıyor. Hakkımızda →

Sorununuzu çözemediniz mi?

Yetkili Netsis destek ekibimiz 7/24 yanınızda. Arayın ya da WhatsApp'tan yazın, 15 dakika içinde uzaktan bağlanıp müdahale edelim.

Bunlar da ilgini çekebilir

WhatsApp Destek