Monitoring Deadlocks in the SQL Server

Monitoring Deadlocks in the SQL Server SQL Server’da Deadlock nedir? SQL Server içindeki bazı kaynaklar için iki veya daha fazla iş parçacığı veya işlem arasında döngüsel bir bağımlılık olduğunda bir kilitlenme oluşur. SQL Server’da bu durum meydana geldiğinde, “victim” a neden olan süreçlerden birini iptal etmeye karar vererek başka bir sürecin veri tabanındaki işlemine devam…

April 27, 2022 by Aryasoft IT

Monitoring Deadlocks in the SQL Server

SQL Server’da Deadlock nedir?

SQL Server içindeki bazı kaynaklar için iki veya daha fazla iş parçacığı veya işlem arasında döngüsel bir bağımlılık olduğunda bir kilitlenme oluşur.

SQL Server’da bu durum meydana geldiğinde, “victim” a neden olan süreçlerden birini iptal etmeye karar vererek başka bir sürecin veri tabanındaki işlemine devam etmesine izin verir.

İptal edilen işlem geri alınır ve iptal edilen işlemin kullanıcısına bir hata mesajı gönderilir.

Genel olarak, geri alma için en az ek yük gerektiren işlem, iptal edilen işlemdir.

Deadlockları Neden Önemsemelisiniz?

Deadlocklar, SQL Server’ın kaynakları, özellikle CPU üzerinde baskı oluşturabilir.

Büyük bir baş ağrısına neden olabilirler çünkü kilitlenmeler genellikle aralıklı olarak meydana gelir ve birbirinden bağımsız çalışan süreçleri içerebilir.

Onları nasıl yakalayabiliriz?

SQL Server 2008 veya sonraki sürümlerde, system_health genişletilmiş olay oturumu varsayılan olarak etkindir ve kilitlenme grafiğini otomatik olarak yakalar.

Aşağıdaki adımları kontrol edebilirsiniz:

  1. SSMS’yi açın, “Managment” öğesini genişletin.
  2. Extend events clock ve Oturumları genişletin.
  3. Extend events dosyasını açmak için system_healt’a tıklayın ve package0_event_file’a çift tıklayın.

  1. Event file görüntüleyicide, sağ tıklayın ve filtreyi xml_deadlock_report’u görüntüleyecek şekilde ayarlayın.

  1. SQL örneği için oluşan Deadlockları gösterir.

Onları nasıl düzeltebilirsiniz?

Genellikle, bunları anlamak ve çözmek için daha derinlemesine bir analize ihtiyaç vardır.

Ancak şunlarla başlayabilirsiniz:

  1. Deadlock süresinin azaltılması – ilgili nesnelerde performans ayarı yapın. (bazen bir index sorunu çözebilir).
  2.  İkinci durumda, NOLOCK ipucunu kullanabilirsiniz.

Deadlock makalemiz için aşağıdaki bağıntıyı tıklayarak ziyaret edebilirsiniz.

https://aryasoft.com.tr/2023/04/14/sql-deadlock-2/

Size ve Veritabanlarınıza Yardımcı Olmak İçin Bekliyoruz!