Skip to content

Commit 98e1e87

Browse files
authored
#2026 sp_BlitzCache show multiple plan count (#2031)
Closes #2026.
1 parent e5e36b4 commit 98e1e87

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

sp_BlitzCache.sql

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ CREATE TABLE ##BlitzCacheProcs (
154154
unparameterized_query BIT,
155155
near_parallel BIT,
156156
plan_warnings BIT,
157-
plan_multiple_plans BIT,
157+
plan_multiple_plans INT,
158158
long_running BIT,
159159
downlevel_estimator BIT,
160160
implicit_conversions BIT,
@@ -911,7 +911,7 @@ BEGIN
911911
unparameterized_query BIT,
912912
near_parallel BIT,
913913
plan_warnings BIT,
914-
plan_multiple_plans BIT,
914+
plan_multiple_plans INT,
915915
long_running BIT,
916916
downlevel_estimator BIT,
917917
implicit_conversions BIT,
@@ -2285,6 +2285,9 @@ FROM (SELECT SqlHandle,
22852285
WHERE x.rn = 1
22862286
OPTION (RECOMPILE);
22872287
2288+
/*
2289+
This block was used to delete duplicate queries, but has been removed.
2290+
For more info: https://github.com/BrentOzarULTD/SQL-Server-First-Responder-Kit/issues/2026
22882291
WITH d AS (
22892292
SELECT SPID,
22902293
ROW_NUMBER() OVER (PARTITION BY SqlHandle, QueryHash ORDER BY #sortable# DESC) AS rn
@@ -2294,7 +2297,8 @@ WHERE SPID = @@SPID
22942297
DELETE d
22952298
WHERE d.rn > 1
22962299
AND SPID = @@SPID
2297-
OPTION (RECOMPILE);
2300+
OPTION (RECOMPILE);
2301+
*/
22982302
';
22992303

23002304
SELECT @sort = CASE @SortOrder WHEN N'cpu' THEN N'TotalCPU'
@@ -2586,7 +2590,7 @@ RAISERROR(N'Gathering high level plan information', 0, 1) WITH NOWAIT;
25862590
UPDATE ##BlitzCacheProcs
25872591
SET NumberOfDistinctPlans = distinct_plan_count,
25882592
NumberOfPlans = number_of_plans ,
2589-
plan_multiple_plans = CASE WHEN distinct_plan_count < number_of_plans THEN 1 END
2593+
plan_multiple_plans = CASE WHEN distinct_plan_count < number_of_plans THEN number_of_plans END
25902594
FROM (
25912595
SELECT COUNT(DISTINCT QueryHash) AS distinct_plan_count,
25922596
COUNT(QueryHash) AS number_of_plans,
@@ -3396,7 +3400,7 @@ WITH XMLNAMESPACES('http://schemas.microsoft.com/sqlserver/2004/07/showplan' AS
33963400
UPDATE ##BlitzCacheProcs
33973401
SET NumberOfDistinctPlans = distinct_plan_count,
33983402
NumberOfPlans = number_of_plans,
3399-
plan_multiple_plans = CASE WHEN distinct_plan_count < number_of_plans THEN 1 END
3403+
plan_multiple_plans = CASE WHEN distinct_plan_count < number_of_plans THEN number_of_plans END
34003404
FROM (
34013405
SELECT COUNT(DISTINCT QueryHash) AS distinct_plan_count,
34023406
COUNT(QueryHash) AS number_of_plans,
@@ -4327,7 +4331,7 @@ SET Warnings = SUBSTRING(
43274331
CASE WHEN downlevel_estimator = 1 THEN ', Downlevel CE' ELSE '' END +
43284332
CASE WHEN implicit_conversions = 1 THEN ', Implicit Conversions' ELSE '' END +
43294333
CASE WHEN tvf_join = 1 THEN ', Function Join' ELSE '' END +
4330-
CASE WHEN plan_multiple_plans = 1 THEN ', Multiple Plans' ELSE '' END +
4334+
CASE WHEN plan_multiple_plans > 0 THEN ', Multiple Plans' + COALESCE(' (' + CAST(plan_multiple_plans AS VARCHAR(10)) + ')', '') ELSE '' END +
43314335
CASE WHEN is_trivial = 1 THEN ', Trivial Plans' ELSE '' END +
43324336
CASE WHEN is_forced_serial = 1 THEN ', Forced Serialization' ELSE '' END +
43334337
CASE WHEN is_key_lookup_expensive = 1 THEN ', Expensive Key Lookup' ELSE '' END +
@@ -4405,7 +4409,7 @@ SELECT DISTINCT
44054409
CASE WHEN downlevel_estimator = 1 THEN ', Downlevel CE' ELSE '' END +
44064410
CASE WHEN implicit_conversions = 1 THEN ', Implicit Conversions' ELSE '' END +
44074411
CASE WHEN tvf_join = 1 THEN ', Function Join' ELSE '' END +
4408-
CASE WHEN plan_multiple_plans = 1 THEN ', Multiple Plans' ELSE '' END +
4412+
CASE WHEN plan_multiple_plans > 0 THEN ', Multiple Plans' + COALESCE(' (' + CAST(plan_multiple_plans AS VARCHAR(10)) + ')', '') ELSE '' END +
44094413
CASE WHEN is_trivial = 1 THEN ', Trivial Plans' ELSE '' END +
44104414
CASE WHEN is_forced_serial = 1 THEN ', Forced Serialization' ELSE '' END +
44114415
CASE WHEN is_key_lookup_expensive = 1 THEN ', Expensive Key Lookup' ELSE '' END +
@@ -4694,7 +4698,7 @@ BEGIN
46944698
CASE WHEN downlevel_estimator = 1 THEN '', 13'' ELSE '''' END +
46954699
CASE WHEN implicit_conversions = 1 THEN '', 14'' ELSE '''' END +
46964700
CASE WHEN tvf_join = 1 THEN '', 17'' ELSE '''' END +
4697-
CASE WHEN plan_multiple_plans = 1 THEN '', 21'' ELSE '''' END +
4701+
CASE WHEN plan_multiple_plans > 0 THEN '', 21'' ELSE '''' END +
46984702
CASE WHEN unmatched_index_count > 0 THEN '', 22'' ELSE '''' END +
46994703
CASE WHEN is_trivial = 1 THEN '', 24'' ELSE '''' END +
47004704
CASE WHEN is_forced_serial = 1 THEN '', 25'' ELSE '''' END +
@@ -5140,7 +5144,7 @@ BEGIN
51405144

51415145
IF EXISTS (SELECT 1/0
51425146
FROM ##BlitzCacheProcs
5143-
WHERE plan_multiple_plans = 1
5147+
WHERE plan_multiple_plans > 0
51445148
AND SPID = @@SPID)
51455149
INSERT INTO ##BlitzCacheResults (SPID, CheckID, Priority, FindingsGroup, Finding, URL, Details)
51465150
VALUES (@@SPID,

0 commit comments

Comments
 (0)