SQL Server’da Deadlock Oluşturan Oturumları Bulmak

SQL Server'da Deadlock Oluşturan Oturumları Bulmak
SQL Server'da Deadlock Oluşturan Oturumları Bulmak

Herkese merhaba. Bu yazıda SQL Server’da Deadlock oluşturan oturumları bulmak ile ilgili bilgi vermeye çalışacağım.

SQL Server’da Deadlock, iki veya daha fazla işlemin karşılıklı olarak birbirlerinin kilitlediği kaynaklara erişmek istemesiyle oluşur. Her iki işlem de sürekli birbirlerini beklediği için sistem kaynakları olumsuz yönde etkilenir. Özellikle sunucunun işlemci değeri boşuna harcanmış olur. Bu da, sunucunun performansını olumsuz yönde etkiler ve sunucuyu cevap veremez duruma bile getirebilir.

Aşağıdaki sorguyu kullanarak sizler de Deadlock oluşturan oturumları bulabilirsiniz.

DECLARE @filepath NVARCHAR(260)

SELECT
	@filepath = SLC.PATH
FROM sys.dm_os_server_diagnostics_log_configurations AS SLC;

SELECT
	@filepath = @filepath + N'system_health_*.xel'

DROP TABLE IF EXISTS #DeadLockTable

SELECT
	CONVERT(XML, event_data) AS SessionData INTO #DeadLockTable
FROM sys.fn_xe_file_target_read_file(@filepath, NULL, NULL, NULL)
WHERE object_name = 'xml_deadlock_report'

SELECT
	SessionData.value('(event/@timestamp)[1]', 'datetime2(7)') AS UTCDeadLockOccuredAt
   ,CONVERT(DATETIME, switchoffset(CONVERT(DATETIMEOFFSET,
	SessionData.value('(event/@timestamp)[1]', 'VARCHAR(50)')), DATENAME(TZOFFSET, sysdatetimeoffset()))) AS SystemTime
   ,SessionData.query('event/data/value/deadlock') AS XMLReport
FROM #DeadLockTable
ORDER BY UTCDeadLockOccuredAt DESC;

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

166 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!