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 7752607

Browse files
Want to pull the query text column from the findings table, because I'm not going to use it Want to replace NULLs in findings table with '-' so people don't think something is missing by accident.
1 parent 0bff992 commit 7752607

File tree

1 file changed

+31
-43
lines changed

1 file changed

+31
-43
lines changed

‎sp_BlitzLock.sql‎

Lines changed: 31 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,7 @@ SET @VersionDate = '20171201';
154154
database_name NVARCHAR(256),
155155
object_name NVARCHAR(1000),
156156
finding_group NVARCHAR(100),
157-
finding NVARCHAR(4000),
158-
query_text XML
157+
finding NVARCHAR(4000)
159158
);
160159

161160

@@ -377,74 +376,70 @@ SET @VersionDate = '20171201';
377376
/*Begin checks based on parsed values*/
378377

379378
/*Check 1 is deadlocks by database*/
380-
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding, query_text )
379+
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding )
381380
SELECT 1 AS check_id,
382381
DB_NAME(dp.database_id) AS database_name,
383-
NULL AS object_name,
382+
'-' AS object_name,
384383
'Total database locks' AS finding_group,
385384
'This database had '
386385
+ CONVERT(NVARCHAR(20), COUNT_BIG(DISTINCT dp.event_date))
387-
+ ' deadlocks.',
388-
NULL AS query_text
386+
+ ' deadlocks.'
389387
FROM #deadlock_process AS dp
390388
GROUP BY DB_NAME(dp.database_id)
391389
OPTION ( RECOMPILE );
392390

393391
/*Check 2 is deadlocks by object*/
394392

395-
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding, query_text )
393+
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding )
396394
SELECT 2 AS check_id,
397395
DB_NAME(dow.database_id) AS database_name,
398396
dow.object_name AS object_name,
399397
'Total object deadlocks' AS finding_group,
400398
'This object was involved in '
401399
+ CONVERT(NVARCHAR(20), COUNT_BIG(DISTINCT dow.object_name))
402-
+ ' deadlock(s).',
403-
NULL AS query_text
400+
+ ' deadlock(s).'
404401
FROM #deadlock_owner_waiter AS dow
405402
GROUP BY DB_NAME(dow.database_id), dow.object_name
406403
OPTION ( RECOMPILE );
407404

408405

409406
/*Check 3 looks for Serializable locking*/
410-
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding, query_text )
407+
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding )
411408
SELECT 3 AS check_id,
412409
DB_NAME(dp.database_id) AS database_name,
413-
NULL AS object_name,
410+
'-' AS object_name,
414411
'Serializable locking' AS finding_group,
415412
'This database has had ' +
416413
CONVERT(NVARCHAR(20), COUNT_BIG(*)) +
417414
' instances of serializable deadlocks.'
418-
AS finding,
419-
NULL AS query_text
415+
AS finding
420416
FROM #deadlock_process AS dp
421417
WHERE dp.isolation_level LIKE 'serializable%'
422418
GROUP BY DB_NAME(dp.database_id)
423419
OPTION ( RECOMPILE );
424420

425421

426422
/*Check 4 looks for Repeatable Read locking*/
427-
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding, query_text )
423+
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding )
428424
SELECT 4 AS check_id,
429425
DB_NAME(dp.database_id) AS database_name,
430-
NULL AS object_name,
426+
'-' AS object_name,
431427
'Repeatable Read locking' AS finding_group,
432428
'This database has had ' +
433429
CONVERT(NVARCHAR(20), COUNT_BIG(*)) +
434430
' instances of repeatable read deadlocks.'
435-
AS finding,
436-
NULL AS query_text
431+
AS finding
437432
FROM #deadlock_process AS dp
438433
WHERE dp.isolation_level LIKE 'repeatable read%'
439434
GROUP BY DB_NAME(dp.database_id)
440435
OPTION ( RECOMPILE );
441436

442437

443438
/*Check 5 breaks down app, host, and login information*/
444-
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding, query_text )
439+
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding )
445440
SELECT 5 AS check_id,
446441
DB_NAME(dp.database_id) AS database_name,
447-
NULL AS object_name,
442+
'-' AS object_name,
448443
'Login, App, and Host locking' AS finding_group,
449444
'This database has had ' +
450445
CONVERT(NVARCHAR(20), COUNT_BIG(DISTINCT dp.id)) +
@@ -454,8 +449,7 @@ SET @VersionDate = '20171201';
454449
ISNULL(dp.client_app, 'UNKNOWN') +
455450
' on host ' +
456451
ISNULL(dp.host_name, 'UNKNOWN')
457-
AS finding,
458-
NULL AS query_text
452+
AS finding
459453
FROM #deadlock_process AS dp
460454
GROUP BY DB_NAME(dp.database_id), dp.login_name, dp.client_app, dp.host_name
461455
OPTION ( RECOMPILE );
@@ -472,7 +466,7 @@ SET @VersionDate = '20171201';
472466
ON dp.id = dow.owner_id
473467
GROUP BY DB_NAME(dp.database_id), SUBSTRING(dp.wait_resource, 1, CHARINDEX(':', dp.wait_resource) - 1), dow.object_name
474468
)
475-
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding, query_text )
469+
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding )
476470
SELECT DISTINCT 6 AS check_id,
477471
lt.database_name,
478472
lt.object_name,
@@ -483,14 +477,13 @@ SET @VersionDate = '20171201';
483477
WHERE lt2.database_name = lt.database_name
484478
AND lt2.object_name = lt.object_name
485479
FOR XML PATH(N''), TYPE).value(N'.[1]', N'NVARCHAR(MAX)'), 1, 1, N'')
486-
+ ' locks',
487-
NULL AS query_text
480+
+ ' locks'
488481
FROM lock_types AS lt
489482
OPTION ( RECOMPILE );
490483

491484

492485
/*Check 7 gives you more info queries for sp_BlitzCache */
493-
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding, query_text )
486+
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding )
494487
SELECT DISTINCT 7 AS check_id,
495488
DB_NAME(dow.database_id) AS database_name,
496489
ds.proc_name AS object_name,
@@ -502,8 +495,7 @@ SET @VersionDate = '20171201';
502495
ELSE '@StoredProcName = ' +
503496
QUOTENAME(ds.proc_name, '''')
504497
END +
505-
';' AS finding,
506-
NULL AS query_text
498+
';' AS finding
507499
FROM #deadlock_stack AS ds
508500
JOIN #deadlock_owner_waiter AS dow
509501
ON dow.owner_id = ds.id
@@ -519,7 +511,7 @@ SET @VersionDate = '20171201';
519511
PARSENAME(dow.object_name, 1) AS table_name
520512
FROM #deadlock_owner_waiter AS dow
521513
)
522-
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding, query_text )
514+
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding )
523515
SELECT 8 AS check_id,
524516
bi.database_name,
525517
bi.schema_name + '.' + bi.table_name,
@@ -528,8 +520,7 @@ SET @VersionDate = '20171201';
528520
'@DatabaseName = ' + QUOTENAME(bi.database_name, '''') +
529521
', @SchemaName = ' + QUOTENAME(bi.schema_name, '''') +
530522
', @TableName = ' + QUOTENAME(bi.table_name, '''') +
531-
';' AS finding,
532-
NULL AS query_text
523+
';' AS finding
533524
FROM bi
534525
OPTION ( RECOMPILE );
535526

@@ -566,16 +557,15 @@ SET @VersionDate = '20171201';
566557
CONVERT(VARCHAR(20), DATEADD(SECOND, (s.wait_time / 1000), 0), 108) AS wait_time_hms
567558
FROM suey AS s
568559
)
569-
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding, query_text )
560+
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding )
570561
SELECT 9 AS check_id,
571562
cs.database_name,
572563
cs.object_name,
573564
'Total object deadlock wait time' AS finding_group,
574565
'This object has had '
575566
+ CONVERT(VARCHAR(10), cs.wait_days)
576567
+ ':' + CONVERT(VARCHAR(20), cs.wait_time_hms, 108)
577-
+ ' [d/h/m/s] of deadlock wait time.' AS finding,
578-
NULL AS query_text
568+
+ ' [d/h/m/s] of deadlock wait time.' AS finding
579569
FROM chopsuey AS cs
580570
WHERE cs.object_name IS NOT NULL
581571
OPTION ( RECOMPILE );
@@ -587,29 +577,27 @@ SET @VersionDate = '20171201';
587577
FROM #deadlock_process AS dp
588578
GROUP BY DB_NAME(dp.database_id)
589579
)
590-
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding, query_text )
580+
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding )
591581
SELECT 10 AS check_id,
592582
wt.database_name,
593-
NULL AS object_name,
583+
'-' AS object_name,
594584
'Total database deadlock wait time' AS finding_group,
595585
'This database has had '
596586
+ CONVERT(VARCHAR(10), (SUM(DISTINCT wt.total_wait_time_ms) / 1000) / 86400)
597587
+ ':' + CONVERT(VARCHAR(20), DATEADD(SECOND, (SUM(DISTINCT wt.total_wait_time_ms) / 1000), 0), 108)
598-
+ ' [d/h/m/s] of deadlock wait time.',
599-
NULL AS query_text
588+
+ ' [d/h/m/s] of deadlock wait time.'
600589
FROM wait_time AS wt
601590
GROUP BY wt.database_name
602591
OPTION ( RECOMPILE );
603592

604593

605594
/*Thank you goodnight*/
606-
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding, query_text )
595+
INSERT #deadlock_findings ( check_id, database_name, object_name, finding_group, finding )
607596
VALUES ( -1,
608597
N'sp_BlitzLock ' + CAST(CONVERT(DATETIME, @VersionDate, 102) AS VARCHAR(100)),
609598
N'SQL Server First Responder Kit',
610599
N'http://FirstResponderKit.org/',
611-
N'To get help or add your own contributions, join us at http://FirstResponderKit.org.'
612-
, NULL );
600+
N'To get help or add your own contributions, join us at http://FirstResponderKit.org.');
613601

614602

615603
WITH deadlocks
@@ -643,8 +631,8 @@ SET @VersionDate = '20171201';
643631
dp.process_xml.value('(//process/inputbuf/text())[1]', 'NVARCHAR(MAX)') AS inputbuf,
644632
ROW_NUMBER() OVER ( PARTITION BY dp.event_date, dp.id ORDER BY dp.event_date ) AS dn,
645633
dp.is_victim,
646-
ISNULL(dp.owner_mode, 'N/A') AS owner_mode,
647-
ISNULL(dp.waiter_mode, 'N/A') AS waiter_mode
634+
ISNULL(dp.owner_mode, '-') AS owner_mode,
635+
ISNULL(dp.waiter_mode, '-') AS waiter_mode
648636
FROM #deadlock_process AS dp )
649637
SELECT d.event_date,
650638
DB_NAME(d.database_id) AS database_name,
@@ -670,7 +658,7 @@ SET @VersionDate = '20171201';
670658

671659

672660

673-
SELECT df.check_id, df.database_name, df.object_name, df.finding_group, df.finding, df.query_text
661+
SELECT df.check_id, df.database_name, df.object_name, df.finding_group, df.finding
674662
FROM #deadlock_findings AS df
675663
ORDER BY df.check_id
676664
OPTION ( RECOMPILE );

0 commit comments

Comments
(0)

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