dataiotech Labs
Script #48
sqlserver
Lockingread-onlyMin Version: 2012

SQL Server Son Deadlock'ları system_health Oturumundan Okuma

system_health Extended Events oturumundaki deadlock grafiklerini çeker. Trace flag açmadan geçmiş deadlock'ların nedenini analiz etmenizi sağlar.

#deadlock#extended-events#system_health
sqlserver · sql
SELECT TOP 20
       x.event_data.value('(event/@timestamp)[1]', 'datetime2') AS event_time,
       x.event_data.query('(event/data[@name="xml_report"]/value/deadlock)[1]') AS deadlock_graph
FROM (
  SELECT CAST(target_data AS XML) AS target_data
  FROM sys.dm_xe_session_targets st
  JOIN sys.dm_xe_sessions s ON s.address = st.event_session_address
  WHERE s.name = 'system_health' AND st.target_name = 'ring_buffer'
) AS tgt
CROSS APPLY tgt.target_data.nodes('RingBufferTarget/event[@name="xml_deadlock_report"]') AS q(n)
CROSS APPLY (SELECT CAST(q.n.query('.') AS XML)) AS x(event_data)
ORDER BY event_time DESC;
Operasyonel Notlar & İyileştirme Aksiyonu

Ring buffer sınırlı olduğundan eski olaylar kaybolabilir. Kalıcı kayıt için .xel dosya hedefini kullanın.

Üretim Güvenliği & Çalıştırma Standartları
  • Bu script salt okunur (read-only) teşhis için tasarlanmıştır; doğrudan veri veya şema değişikliği yapmaz.
  • Ağır yük altındaki üretim sunucularında çalıştırmadan önce hedef veritabanı sürümünü (Min. Sürüm: 2012) doğrulayın.
  • İlişkili oturumu sonlandırma veya indeks silme gibi yazma etkili aksiyonlar için notlar bölümündeki komutları temkinli uygulayın.

Mühendislik Triadı: İlgili Runbook ve Kriz Müdahaleleri

Bu script hangi üretim alarmlarında ve acil durum tatbikatlarında teşhis adımı olarak çalıştırılır?

Runbook Kütüphanesi (63)
İlişkili Alarmlar ve Metrikler
M29SQL Server Deadlock OranıSQL Server