By Sean Perkins


2017-10-16 23:12:15 8 Comments

I'm looking for a easy or manageable way to read an XML file, specifically the XML output for SQL Server deadlocks. I have some servers that are not being monitored for various reasons.

I found the following code on the interwebz, but its output is nothing but XML.

CREATE TABLE #errorlog (
                        LogDate DATETIME 
                        , ProcessInfo VARCHAR(100)
                        , [Text] VARCHAR(MAX)
                        );

DECLARE @tag VARCHAR (MAX) , @path VARCHAR(MAX);

INSERT INTO #errorlog EXEC sp_readerrorlog;

SELECT @tag = text
FROM #errorlog 
WHERE [Text] LIKE 'Logging%MSSQL\Log%';

DROP TABLE #errorlog;

SET @path = SUBSTRING(@tag, 38, CHARINDEX('MSSQL\Log', @tag) - 29);

SELECT 
    CONVERT(xml, event_data).query('/event/data/value/child::*') AS DeadlockReport,
    CONVERT(xml, event_data).value('(event[@name="xml_deadlock_report"]/@timestamp)[1]', 'datetime') 
    AS Execution_Time
FROM sys.fn_xe_file_target_read_file(@path + '\system_health*.xel', NULL, NULL, NULL)
WHERE OBJECT_NAME like 'xml_deadlock_report';

Is there a way to take the raw XML output from this T-SQL code and display it as a deadlock graph or more easily readable text?

1 comments

@Kin Shah 2017-10-17 02:17:39

You can bcp out and save it as .xdl. Many ways you can do it .. e.g. BCP OUT (I am using xp_cmdshell but you can use powershell or any other method).

Borrowing code from my answer (You need to adjust the code as per your requirement) :

-- bcp out as .xdl file. This is the deadlock graph that will be emailed. Note that it will be overwritten everytime !!

exec master..xp_cmdshell ''BCP.exe "SELECT  [Deadlockgraph].query(''''/TextData/deadlock-list'''') FROM dba_db.dbo.Deadlock where Notified = 0" queryout "d:\logs\deadlock.xdl" -c -q -T -Slocalhost''; ---- change localhost ..with the servername\instance or servername !!

@Sean Perkins 2017-10-17 13:45:31

Thank you, Kin. I can see how this method could be very useful!

Related Questions

Sponsored Content

1 Answered Questions

[SOLVED] Explain SQL Server deadlock graph modes

1 Answered Questions

[SOLVED] Help understanding deadlock XML

1 Answered Questions

[SOLVED] Investigating errors from strange query

1 Answered Questions

[SOLVED] Insert XML File into specific sql table

  • 2016-11-17 12:22:16
  • DANAA
  • 2769 View
  • 2 Score
  • 1 Answer
  • Tags:   sql-server xml

1 Answered Questions

[SOLVED] How do I understand this DeadLock Graph?

2 Answered Questions

[SOLVED] Understanding deadlock XML

  • 2015-02-17 23:27:52
  • Todd Schluechtermann
  • 740 View
  • 3 Score
  • 2 Answer
  • Tags:   sql-server deadlock

1 Answered Questions

[SOLVED] Weird deadlock graph

1 Answered Questions

[SOLVED] Oracle GoldenGate add trandata errors

Sponsored Content