Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 560fb60

Browse files
Tell a story
v1
1 parent 4b600f2 commit 560fb60

File tree

1 file changed

+106
-0
lines changed

1 file changed

+106
-0
lines changed

‎sp_BlitzLock.sql‎

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,11 +379,117 @@ AS
379379
NULL AS query_text
380380
FROM bi;
381381

382+
/*Check 9 gets total deadlock wait time per database*/
383+
WITH wait_time AS (
384+
SELECT DB_NAME(dp.database_id) AS database_name,
385+
SUM(CONVERT(BIGINT, dp.wait_time)) AS total_wait_time_ms
386+
FROM #deadlock_process AS dp
387+
GROUP BY DB_NAME(dp.database_id)
388+
)
389+
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding, query_text )
390+
SELECT 9 AS check_id,
391+
wt.database_name,
392+
NULL AS object_name,
393+
'Total deadlock wait time' AS finding_group,
394+
'This database has had '
395+
+ CONVERT(VARCHAR(10), (SUM([total_wait_time_ms]) / 1000) / 86400)
396+
+ ':' + CONVERT(VARCHAR(20), DATEADD(s, (SUM([total_wait_time_ms]) / 1000), 0), 108)
397+
+ ' [d/h/m/s] of deadlock wait time.',
398+
NULL AS query_text
399+
FROM wait_time AS wt
400+
GROUP BY wt.database_name
401+
402+
382403
/*Thank you goodnight*/
383404
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding, query_text )
384405
VALUES ( 0, N'sp_BlitzLock', N'SQL Server First Responder Kit', N'http://FirstResponderKit.org/', N'To get help or add your own contributions, join us at http://FirstResponderKit.org.', NULL )
385406

386407

408+
SELECT CONVERT(XML,
409+
N'<Clickme> '
410+
+ NCHAR(10)
411+
+ N'Event Date: '
412+
+ CONVERT(NVARCHAR(30), CONVERT(DATETIME, owner.event_date))
413+
+ NCHAR(10)
414+
+ N'Owner Information '
415+
+ NCHAR(10)
416+
+ N'=================='
417+
+ NCHAR(10)
418+
+ N' Owner Process: '
419+
+ QUOTENAME(SUBSTRING(dow.owner_id, 8, 128))
420+
+ NCHAR(10)
421+
+ N' Owner Login: '
422+
+ QUOTENAME(owner.login_name)
423+
+ NCHAR(10)
424+
+ N' Owner Lock Type: '
425+
+ QUOTENAME(dow.owner_mode)
426+
+ NCHAR(10)
427+
+ N' Owner Object: '
428+
+ QUOTENAME(dow.object_name)
429+
+ NCHAR(10)
430+
+ N' Owner Isolation level: '
431+
+ QUOTENAME(owner.isolation_level)
432+
+ NCHAR(10)
433+
+ N' Owner Transaction: '
434+
+ QUOTENAME(owner.transaction_name)
435+
+ NCHAR(10)
436+
+ N' Owner Transaction Count: '
437+
+ QUOTENAME(owner.transaction_count)
438+
+ NCHAR(10)
439+
+ N' Owner Application: '
440+
+ QUOTENAME(owner.client_app)
441+
+ NCHAR(10)
442+
+ N' Owner Host Name: '
443+
+ QUOTENAME(owner.host_name)
444+
445+
+ NCHAR(10)
446+
+ NCHAR(10)
447+
448+
+ N'Victim Information '
449+
+ NCHAR(10)
450+
+ N'=================='
451+
+ NCHAR(10)
452+
+ N' Victim Process: '
453+
+ QUOTENAME(SUBSTRING(dow.waiter_id, 8, 128))
454+
+ NCHAR(10)
455+
+ N' Victim Login '
456+
+ QUOTENAME(waiter.login_name)
457+
+ NCHAR(10)
458+
+ N' Victim Lock Type: '
459+
+ QUOTENAME(dow.waiter_mode)
460+
+ NCHAR(10)
461+
+ N' Victim Object: '
462+
+ QUOTENAME(dow.object_name)
463+
+ NCHAR(10)
464+
+ N' Victim Isolation level: '
465+
+ QUOTENAME(waiter.isolation_level)
466+
+ NCHAR(10)
467+
+ N' Victim Transaction: '
468+
+ QUOTENAME(waiter.transaction_name)
469+
+ NCHAR(10)
470+
+ N' Victim Transaction Count: '
471+
+ QUOTENAME(waiter.transaction_count)
472+
+ NCHAR(10)
473+
+ N' Victim Application: '
474+
+ QUOTENAME(waiter.client_app)
475+
+ NCHAR(10)
476+
+ N' Owner Host Name: '
477+
+ QUOTENAME(owner.host_name)
478+
479+
+ NCHAR(10)
480+
+ N'</Clickme> '
481+
)
482+
AS [deadlock_story],
483+
owner.input_buffer AS 'owner_query',
484+
waiter.input_buffer AS 'victim_query'
485+
FROM #deadlock_owner_waiter AS dow
486+
JOIN (SELECT TOP 1 * FROM #deadlock_process AS dp) AS owner
487+
ON owner.id = dow.owner_id
488+
JOIN (SELECT TOP 1 * FROM #deadlock_process AS dp) AS waiter
489+
ON waiter.id = dow.owner_id
490+
491+
492+
387493
SELECT df.check_id, df.database_name, df.object_name, df.finding_group, df.finding, df.query_text
388494
FROM #deadlock_findings AS df
389495
ORDER BY df.check_id;

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /