@@ -219,7 +219,8 @@ BEGIN
219219 database_name nvarchar(256 ),
220220 object_name nvarchar(1000 ),
221221 finding_group nvarchar(100 ),
222- finding nvarchar(4000 )
222+ finding nvarchar(4000 ),
223+ sort_order bigint
223224 );
224225
225226 /* Set these to some sane defaults if NULLs are passed in*/
@@ -1758,7 +1759,8 @@ BEGIN
17581759 database_name,
17591760 object_name,
17601761 finding_group,
1761- finding
1762+ finding,
1763+ sort_order
17621764 )
17631765 SELECT
17641766 check_id = 1 ,
@@ -1772,7 +1774,10 @@ BEGIN
17721774 nvarchar(20 ),
17731775 COUNT_BIG(DISTINCT dp .event_date )
17741776 ) +
1775- N' deadlocks.'
1777+ N' deadlocks.' ,
1778+ sort_order =
1779+ ROW_NUMBER()
1780+ OVER (ORDER BY COUNT_BIG(DISTINCT dp .event_date ) DESC )
17761781 FROM # deadlock_process AS dp
17771782 WHERE 1 = 1
17781783 AND (dp .database_name = @DatabaseName OR @DatabaseName IS NULL )
@@ -1797,7 +1802,8 @@ BEGIN
17971802 database_name,
17981803 object_name,
17991804 finding_group,
1800- finding
1805+ finding,
1806+ sort_order
18011807 )
18021808 SELECT
18031809 check_id = 2 ,
@@ -1812,7 +1818,10 @@ BEGIN
18121818 nvarchar(20 ),
18131819 COUNT_BIG(DISTINCT dow .event_date )
18141820 ) +
1815- N' deadlock(s) between read queries and modification queries.'
1821+ N' deadlock(s) between read queries and modification queries.' ,
1822+ sort_order =
1823+ ROW_NUMBER()
1824+ OVER (ORDER BY COUNT_BIG(DISTINCT dow .event_date ) DESC )
18161825 FROM # deadlock_owner_waiter AS dow
18171826 WHERE 1 = 1
18181827 AND dow .lock_mode IN
@@ -1851,7 +1860,8 @@ BEGIN
18511860 database_name,
18521861 object_name,
18531862 finding_group,
1854- finding
1863+ finding,
1864+ sort_order
18551865 )
18561866 SELECT
18571867 check_id = 3 ,
@@ -1870,7 +1880,10 @@ BEGIN
18701880 nvarchar(20 ),
18711881 COUNT_BIG(DISTINCT dow .event_date )
18721882 ) +
1873- N' deadlock(s).'
1883+ N' deadlock(s).' ,
1884+ sort_order =
1885+ ROW_NUMBER()
1886+ OVER (ORDER BY COUNT_BIG(DISTINCT dow .event_date ) DESC )
18741887 FROM # deadlock_owner_waiter AS dow
18751888 WHERE 1 = 1
18761889 AND (dow .database_id = @DatabaseId OR @DatabaseName IS NULL )
@@ -1895,7 +1908,8 @@ BEGIN
18951908 database_name,
18961909 object_name,
18971910 finding_group,
1898- finding
1911+ finding,
1912+ sort_order
18991913 )
19001914 SELECT
19011915 check_id = 3 ,
@@ -1909,7 +1923,10 @@ BEGIN
19091923 nvarchar(20 ),
19101924 COUNT_BIG(DISTINCT dow .event_date )
19111925 ) +
1912- N' deadlock(s).'
1926+ N' deadlock(s).' ,
1927+ sort_order =
1928+ ROW_NUMBER()
1929+ OVER (ORDER BY COUNT_BIG(DISTINCT dow .event_date ) DESC )
19131930 FROM # deadlock_owner_waiter AS dow
19141931 WHERE 1 = 1
19151932 AND (dow .database_id = @DatabaseId OR @DatabaseName IS NULL )
@@ -1940,7 +1957,8 @@ BEGIN
19401957 database_name,
19411958 object_name,
19421959 finding_group,
1943- finding
1960+ finding,
1961+ sort_order
19441962 )
19451963 SELECT
19461964 check_id = 3 ,
@@ -1954,7 +1972,10 @@ BEGIN
19541972 nvarchar(20 ),
19551973 COUNT_BIG(DISTINCT dow .event_date )
19561974 ) +
1957- N' deadlock(s).'
1975+ N' deadlock(s).' ,
1976+ sort_order =
1977+ ROW_NUMBER()
1978+ OVER (ORDER BY COUNT_BIG(DISTINCT dow .event_date ) DESC )
19581979 FROM # deadlock_owner_waiter AS dow
19591980 WHERE 1 = 1
19601981 AND (dow .database_id = @DatabaseId OR @DatabaseName IS NULL )
@@ -1984,7 +2005,8 @@ BEGIN
19842005 database_name,
19852006 object_name,
19862007 finding_group,
1987- finding
2008+ finding,
2009+ sort_order
19882010 )
19892011 SELECT
19902012 check_id = 4 ,
@@ -1999,7 +2021,10 @@ BEGIN
19992021 nvarchar(20 ),
20002022 COUNT_BIG(DISTINCT dp .event_date )
20012023 ) +
2002- N' instances of Serializable deadlocks.'
2024+ N' instances of Serializable deadlocks.' ,
2025+ sort_order =
2026+ ROW_NUMBER()
2027+ OVER (ORDER BY COUNT_BIG(DISTINCT dow .event_date ) DESC )
20032028 FROM # deadlock_process AS dp
20042029 WHERE dp .isolation_level LIKE N' serializable%'
20052030 AND (dp .database_name = @DatabaseName OR @DatabaseName IS NULL )
@@ -2024,7 +2049,8 @@ BEGIN
20242049 database_name,
20252050 object_name,
20262051 finding_group,
2027- finding
2052+ finding,
2053+ sort_order
20282054 )
20292055 SELECT
20302056 check_id = 5 ,
@@ -2038,7 +2064,10 @@ BEGIN
20382064 nvarchar(20 ),
20392065 COUNT_BIG(DISTINCT dp .event_date )
20402066 ) +
2041- N' instances of Repeatable Read deadlocks.'
2067+ N' instances of Repeatable Read deadlocks.' ,
2068+ sort_order =
2069+ ROW_NUMBER()
2070+ OVER (ORDER BY COUNT_BIG(DISTINCT dow .event_date ) DESC )
20422071 FROM # deadlock_process AS dp
20432072 WHERE dp .isolation_level LIKE N' repeatable%'
20442073 AND (dp .database_name = @DatabaseName OR @DatabaseName IS NULL )
@@ -2063,7 +2092,8 @@ BEGIN
20632092 database_name,
20642093 object_name,
20652094 finding_group,
2066- finding
2095+ finding,
2096+ sort_order
20672097 )
20682098 SELECT
20692099 check_id = 6 ,
@@ -2096,7 +2126,10 @@ BEGIN
20962126 dp .host_name ,
20972127 N' UNKNOWN'
20982128 ) +
2099- N' .'
2129+ N' .' ,
2130+ sort_order =
2131+ ROW_NUMBER()
2132+ OVER (ORDER BY COUNT_BIG(DISTINCT dp .event_date ) DESC )
21002133 FROM # deadlock_process AS dp
21012134 WHERE 1 = 1
21022135 AND (dp .database_name = @DatabaseName OR @DatabaseName IS NULL )
@@ -2177,7 +2210,8 @@ BEGIN
21772210 database_name,
21782211 object_name,
21792212 finding_group,
2180- finding
2213+ finding,
2214+ sort_order
21812215 )
21822216 SELECT
21832217 check_id = 7 ,
@@ -2204,7 +2238,10 @@ BEGIN
22042238 1 ,
22052239 1 ,
22062240 N' '
2207- ) + N' locks.'
2241+ ) + N' locks.' ,
2242+ sort_order =
2243+ ROW_NUMBER()
2244+ OVER (ORDER BY CONVERT (bigint , lt2 .lock_count ) DESC )
22082245 FROM lock_types AS lt
22092246 OPTION(RECOMPILE);
22102247
@@ -2360,7 +2397,8 @@ BEGIN
23602397 database_name,
23612398 object_name,
23622399 finding_group,
2363- finding
2400+ finding,
2401+ sort_order
23642402 )
23652403 SELECT
23662404 check_id = 9 ,
@@ -2379,7 +2417,10 @@ BEGIN
23792417 nvarchar(10 ),
23802418 COUNT_BIG(DISTINCT ds .id )
23812419 ) +
2382- N' deadlocks.'
2420+ N' deadlocks.' ,
2421+ sort_order =
2422+ ROW_NUMBER()
2423+ OVER (ORDER BY COUNT_BIG(DISTINCT ds .id ) DESC )
23832424 FROM # deadlock_stack AS ds
23842425 JOIN # deadlock_process AS dp
23852426 ON dp .id = ds .id
@@ -2568,7 +2609,9 @@ BEGIN
25682609 ),
25692610 14
25702611 )
2571- END
2612+ END,
2613+ total_waits =
2614+ SUM (CONVERT (bigint , dp .wait_time ))
25722615 FROM # deadlock_owner_waiter AS dow
25732616 JOIN # deadlock_process AS dp
25742617 ON (dp .id = dow .owner_id
@@ -2593,7 +2636,8 @@ BEGIN
25932636 database_name,
25942637 object_name,
25952638 finding_group,
2596- finding
2639+ finding,
2640+ sort_order
25972641 )
25982642 SELECT
25992643 check_id = 11 ,
@@ -2614,7 +2658,10 @@ BEGIN
26142658 cs .wait_time_hms ,
26152659 14
26162660 ) +
2617- N' [dd hh:mm:ss:ms] of deadlock wait time.'
2661+ N' [dd hh:mm:ss:ms] of deadlock wait time.' ,
2662+ sort_order =
2663+ ROW_NUMBER()
2664+ OVER (ORDER BY cs .total_waits DESC )
26182665 FROM chopsuey AS cs
26192666 WHERE cs .object_name IS NOT NULL
26202667 OPTION(RECOMPILE);
@@ -2662,7 +2709,8 @@ BEGIN
26622709 database_name,
26632710 object_name,
26642711 finding_group,
2665- finding
2712+ finding,
2713+ sort_order
26662714 )
26672715 SELECT
26682716 check_id = 12 ,
@@ -2775,7 +2823,10 @@ BEGIN
27752823 ),
27762824 14
27772825 ) END +
2778- N' [dd hh:mm:ss:ms] of deadlock wait time.'
2826+ N' [dd hh:mm:ss:ms] of deadlock wait time.' ,
2827+ sort_order =
2828+ ROW_NUMBER()
2829+ OVER (ORDER BY wt .total_wait_time_ms DESC )
27792830 FROM wait_time AS wt
27802831 GROUP BY
27812832 wt .database_name
@@ -2794,7 +2845,8 @@ BEGIN
27942845 database_name,
27952846 object_name,
27962847 finding_group,
2797- finding
2848+ finding,
2849+ sort_order
27982850 )
27992851 SELECT
28002852 check_id = 13 ,
@@ -2809,7 +2861,10 @@ BEGIN
28092861 finding =
28102862 N' There have been ' +
28112863 RTRIM(COUNT_BIG(DISTINCT aj .event_date )) +
2812- N' deadlocks from this Agent Job and Step.'
2864+ N' deadlocks from this Agent Job and Step.' ,
2865+ sort_order =
2866+ ROW_NUMBER()
2867+ OVER (ORDER BY COUNT_BIG(DISTINCT aj .event_date ) DESC )
28132868 FROM # agent_job AS aj
28142869 GROUP BY
28152870 DB_NAME(aj .database_id ),
@@ -2925,7 +2980,8 @@ BEGIN
29252980 database_name,
29262981 object_name,
29272982 finding_group,
2928- finding
2983+ finding,
2984+ sort_order
29292985 )
29302986 VALUES
29312987 (
@@ -3731,7 +3787,9 @@ BEGIN
37313787 df .finding_group ,
37323788 df .finding
37333789 FROM # deadlock_findings AS df
3734- ORDER BY df .check_id
3790+ ORDER BY
3791+ df .check_id ,
3792+ df .sort_order
37353793 OPTION(RECOMPILE);
37363794
37373795 SET @d = CONVERT (varchar (40 ), GETDATE(), 109 );
0 commit comments