Šajā rakstā T-SQL lai pārliecinātos, ka tā tiešām ir (vaicājumi testēti uz SQL Server 2008 R2 un SQL Server 2008 SP2 Express).
Atšķirībā no Event Notification: Strupsaķeres (deadlock) reģistrēšanai šis vaicājums atlasa datus tikai kopš pēdējās SQL Server pārstartēšanas reizes (Kad SQL Server tika pārstartēts?).
Tātad, lai varētu atlasīt SQL Server reģistrētās strupsaķeres, var izmantot sql (mainīts no šejienes):
Declare @xml xmlNoņemot Where daļu var redzēt arī citus reģistrētos notikumus.
Select @xml = CAST(target_data AS XML) -- AS TargetData
FROM sys.dm_xe_session_targets st
Inner Join sys.dm_xe_sessions s ON s.address = st.event_session_address
WHERE [name] = 'system_health'
Select
XEventData.XEvent.value('@package', 'nvarchar(max)') Package,
XEventData.XEvent.value('@name', 'varchar(max)') Name,
XEventData.XEvent.value('@timestamp', 'DateTime') Date,
XEventData.XEvent.query('(data/value)[1]') Deadlock,
cast(XEventData.XEvent.value ('(data/value)[1]', 'varchar(max)') as xml),
XEvent.query('.') --*
From @xml.nodes('//RingBufferTarget/event') as XEventData (XEvent)
WHERE XEventData.XEvent.value('@name', 'varchar(4000)') = 'xml_deadlock_report';
Nav komentāru:
Ierakstīt komentāru