@@ -1079,7 +1079,7 @@ IF @Top IS NULL
10791079 OR @QueryFilter IS NULL
10801080 OR @Reanalyze IS NULL
10811081BEGIN
1082- RAISERROR (N ' Several parameters (@Top, @SortOrder, @QueryFilter, @renalyze ) are required. Do not set them to NULL. Please try again.' , 16 , 1 ) WITH NOWAIT ;
1082+ RAISERROR (N ' Several parameters (@Top, @SortOrder, @QueryFilter, @Reanalyze ) are required. Do not set them to NULL. Please try again.' , 16 , 1 ) WITH NOWAIT ;
10831083 RETURN ;
10841084END ;
10851085
@@ -2018,7 +2018,7 @@ IF @IgnoreSystemDBs = 1
20182018 SET @body + = N ' AND COALESCE(LOWER(DB_NAME(CAST(xpa.value AS INT))), '' '' ) NOT IN ('' master'' , '' model'' , '' msdb'' , '' tempdb'' , '' 32767'' , '' dbmaintenance'' , '' dbadmin'' , '' dbatools'' ) AND COALESCE(DB_NAME(CAST(xpa.value AS INT)), '' '' ) NOT IN (SELECT name FROM sys.databases WHERE is_distributor = 1)' + @nl ;
20192019 END ;
20202020
2021- IF @DatabaseName IS NOT NULL OR @DatabaseName <> N ' '
2021+ IF @DatabaseName IS NOT NULL AND @DatabaseName <> N ' '
20222022 BEGIN
20232023 RAISERROR (N ' Filtering database name chosen' , 0 , 1 ) WITH NOWAIT ;
20242024 SET @body + = N ' AND CAST(xpa.value AS BIGINT) = DB_ID(N'
@@ -2275,7 +2275,9 @@ BEGIN
22752275 CASE WHEN t.t_TotalReads = 0 THEN 0
22762276 ELSE CAST(ROUND(100.00 * total_logical_reads / t.t_TotalReads, 2) AS MONEY)
22772277 END AS PercentReadsByType,
2278- CAST(ROUND(100.00 * execution_count / t.t_TotalExecs, 2) AS MONEY) AS PercentExecutionsByType,
2278+ CASE WHEN t.t_TotalExecs = 0 THEN 0
2279+ ELSE CAST(ROUND(100.00 * execution_count / t.t_TotalExecs, 2) AS MONEY)
2280+ END AS PercentExecutionsByType,
22792281 (total_elapsed_time / 1000.0) / execution_count AS AvgDuration ,
22802282 (total_elapsed_time / 1000.0) AS TotalDuration ,
22812283 total_logical_reads / execution_count AS AvgReads ,
@@ -2394,7 +2396,7 @@ BEGIN
23942396 qs.max_worker_time / 1000.0,
23952397 CASE WHEN qp.query_plan.value('' declare namespace p="http://schemas.microsoft.com/sqlserver/2004/07/showplan";max(//p:RelOp/@Parallel)'' , '' float'' ) > 0 THEN 1 ELSE 0 END,
23962398 qs.min_elapsed_time / 1000.0,
2397- qs.max_worker_time / 1000.0,
2399+ qs.max_elapsed_time / 1000.0,
23982400 age_minutes,
23992401 age_minutes_lifetime,
24002402 @SortOrder ' ;
@@ -2619,16 +2621,16 @@ SELECT @sql = REPLACE(@sql, '#sortable#', @sort);
26192621IF @Debug = 1
26202622 BEGIN
26212623 PRINT N ' Printing dynamic SQL stored in @sql: ' ;
2622- PRINT SUBSTRING (@sql, 0 , 4000 );
2623- PRINT SUBSTRING (@sql, 4000 , 8000 );
2624- PRINT SUBSTRING (@sql, 8000 , 12000 );
2625- PRINT SUBSTRING (@sql, 12000 , 16000 );
2626- PRINT SUBSTRING (@sql, 16000 , 20000 );
2627- PRINT SUBSTRING (@sql, 20000 , 24000 );
2628- PRINT SUBSTRING (@sql, 24000 , 28000 );
2629- PRINT SUBSTRING (@sql, 28000 , 32000 );
2630- PRINT SUBSTRING (@sql, 32000 , 36000 );
2631- PRINT SUBSTRING (@sql, 36000 , 40000 );
2624+ PRINT SUBSTRING (@sql, 1 , 4000 );
2625+ PRINT SUBSTRING (@sql, 4001 , 4000 );
2626+ PRINT SUBSTRING (@sql, 8001 , 4000 );
2627+ PRINT SUBSTRING (@sql, 12001 , 4000 );
2628+ PRINT SUBSTRING (@sql, 16001 , 4000 );
2629+ PRINT SUBSTRING (@sql, 20001 , 4000 );
2630+ PRINT SUBSTRING (@sql, 24001 , 4000 );
2631+ PRINT SUBSTRING (@sql, 28001 , 4000 );
2632+ PRINT SUBSTRING (@sql, 32001 , 4000 );
2633+ PRINT SUBSTRING (@sql, 36001 , 4000 );
26322634 END ;
26332635
26342636RAISERROR (N ' Creating temp tables for results and warnings.' , 0 , 1 ) WITH NOWAIT ;
@@ -3062,6 +3064,7 @@ WHERE ##BlitzCacheProcs.SqlHandle = y.SqlHandle
30623064 AND ##BlitzCacheProcs .QueryHash = y .QueryHash
30633065 AND ##BlitzCacheProcs .DatabaseName = y .DatabaseName
30643066 AND ##BlitzCacheProcs .PlanHandle IS NULL
3067+ AND ##BlitzCacheProcs .SPID = @@SPID
30653068OPTION (RECOMPILE ) ;
30663069
30673070
@@ -4273,8 +4276,8 @@ SET sp.variable_datatype = vi.variable_datatype,
42734276 sp .compile_time_value = vi .compile_time_value
42744277FROM #stored_proc_info AS sp
42754278JOIN #variable_info AS vi
4276- ON (sp .proc_name = ' adhoc' AND sp .QueryHash = vi .QueryHash )
4277- OR (sp .proc_name <> ' adhoc' AND sp .SqlHandle = vi .SqlHandle )
4279+ ON (( sp .proc_name = ' adhoc' AND sp .QueryHash = vi .QueryHash )
4280+ OR (sp .proc_name <> ' adhoc' AND sp .SqlHandle = vi .SqlHandle ))
42784281AND sp .variable_name = vi .variable_name
42794282OPTION (RECOMPILE );
42804283
@@ -4332,10 +4335,10 @@ JOIN (
43324335 N ' SET ANSI_NULLS ' + CASE WHEN [ANSI_NULLS] = ' true' THEN N ' ON ' ELSE N ' OFF ' END + NCHAR (10 ) +
43334336 N ' SET ANSI_PADDING ' + CASE WHEN [ANSI_PADDING] = ' true' THEN N ' ON ' ELSE N ' OFF ' END + NCHAR (10 ) +
43344337 N ' SET ANSI_WARNINGS ' + CASE WHEN [ANSI_WARNINGS] = ' true' THEN N ' ON ' ELSE N ' OFF ' END + NCHAR (10 ) +
4335- N ' SET ARITHABORT ' + CASE WHEN [ARITHABORT] = ' true' THEN N ' ON ' ELSE N ' OFF ' END + NCHAR (10 ) +
4338+ N ' SET ARITHABORT ' + CASE WHEN [ARITHABORT] = ' true' THEN N ' ON ' ELSE N ' OFF ' END + NCHAR (10 ) +
43364339 N ' SET CONCAT_NULL_YIELDS_NULL ' + CASE WHEN [CONCAT_NULL_YIELDS_NULL] = ' true' THEN N ' ON ' ELSE N ' OFF ' END + NCHAR (10 ) +
43374340 N ' SET NUMERIC_ROUNDABORT ' + CASE WHEN [NUMERIC_ROUNDABORT] = ' true' THEN N ' ON ' ELSE N ' OFF ' END + NCHAR (10 ) +
4338- N ' SET QUOTED_IDENTIFIER ' + CASE WHEN [QUOTED_IDENTIFIER] = ' true' THEN N ' ON ' ELSE N ' OFF ' + NCHAR (10 ) END AS [ansi_set_options]
4341+ N ' SET QUOTED_IDENTIFIER ' + CASE WHEN [QUOTED_IDENTIFIER] = ' true' THEN N ' ON ' ELSE N ' OFF ' END + NCHAR (10 ) AS [ansi_set_options]
43394342 FROM (
43404343 SELECT
43414344 s .SqlHandle ,
@@ -4529,9 +4532,9 @@ OPTION (RECOMPILE);
45294532/* Begin Missing Index*/
45304533IF EXISTS ( SELECT 1 / 0
45314534 FROM ##BlitzCacheProcs AS bbcp
4532- WHERE bbcp .missing_index_count > 0
4535+ WHERE ( bbcp .missing_index_count > 0
45334536 OR bbcp .index_spool_cost > 0
4534- OR bbcp .index_spool_rows > 0
4537+ OR bbcp .index_spool_rows > 0 )
45354538 AND bbcp .SPID = @@SPID )
45364539
45374540 BEGIN
@@ -4880,7 +4883,7 @@ UPDATE p
48804883 CASE WHEN (CAST (pa .value AS INT ) & 32 = 32 ) THEN ' , ANSI_NULLS' ELSE ' ' END +
48814884 CASE WHEN (CAST (pa .value AS INT ) & 64 = 64 ) THEN ' , QUOTED_IDENTIFIER' ELSE ' ' END +
48824885 CASE WHEN (CAST (pa .value AS INT ) & 4096 = 4096 ) THEN ' , ARITH_ABORT' ELSE ' ' END +
4883- CASE WHEN (CAST (pa .value AS INT ) & 8192 = 8191 ) THEN ' , NUMERIC_ROUNDABORT' ELSE ' ' END
4886+ CASE WHEN (CAST (pa .value AS INT ) & 8192 = 8192 ) THEN ' , NUMERIC_ROUNDABORT' ELSE ' ' END
48844887 , 2 , 200000 )
48854888FROM ##BlitzCacheProcs p
48864889 CROSS APPLY sys .dm_exec_plan_attributes (p .PlanHandle ) pa
@@ -4901,8 +4904,8 @@ OPTION (RECOMPILE);
49014904UPDATE p
49024905SET is_cursor = 1
49034906FROM ##BlitzCacheProcs p
4904- WHERE QueryHash = 0x0000000000000000
4905- OR QueryPlanHash = 0x0000000000000000
4907+ WHERE ( QueryHash = 0x0000000000000000
4908+ OR QueryPlanHash = 0x0000000000000000)
49064909AND SPID = @@SPID
49074910OPTION (RECOMPILE );
49084911
@@ -5105,7 +5108,7 @@ SET Warnings = 'No warnings detected. ' + CASE @ExpertMode
51055108 THEN ' Try running sp_BlitzCache with @ExpertMode = 1 to find more advanced problems.'
51065109 ELSE ' '
51075110 END
5108- WHERE Warnings = ' ' OR Warnings IS NULL
5111+ WHERE ( Warnings = ' ' OR Warnings IS NULL )
51095112AND SPID = @@SPID
51105113OPTION (RECOMPILE );
51115114
@@ -5757,16 +5760,16 @@ SET @sql += N' OPTION (RECOMPILE) ; ';
57575760
57585761IF @Debug = 1
57595762 BEGIN
5760- PRINT SUBSTRING (@sql, 0 , 4000 );
5761- PRINT SUBSTRING (@sql, 4000 , 8000 );
5762- PRINT SUBSTRING (@sql, 8000 , 12000 );
5763- PRINT SUBSTRING (@sql, 12000 , 16000 );
5764- PRINT SUBSTRING (@sql, 16000 , 20000 );
5765- PRINT SUBSTRING (@sql, 20000 , 24000 );
5766- PRINT SUBSTRING (@sql, 24000 , 28000 );
5767- PRINT SUBSTRING (@sql, 28000 , 32000 );
5768- PRINT SUBSTRING (@sql, 32000 , 36000 );
5769- PRINT SUBSTRING (@sql, 36000 , 40000 );
5763+ PRINT SUBSTRING (@sql, 1 , 4000 );
5764+ PRINT SUBSTRING (@sql, 4001 , 4000 );
5765+ PRINT SUBSTRING (@sql, 8001 , 4000 );
5766+ PRINT SUBSTRING (@sql, 12001 , 4000 );
5767+ PRINT SUBSTRING (@sql, 16001 , 4000 );
5768+ PRINT SUBSTRING (@sql, 20001 , 4000 );
5769+ PRINT SUBSTRING (@sql, 24001 , 4000 );
5770+ PRINT SUBSTRING (@sql, 28001 , 4000 );
5771+ PRINT SUBSTRING (@sql, 32001 , 4000 );
5772+ PRINT SUBSTRING (@sql, 36001 , 4000 );
57705773 END ;
57715774IF (@OutputType <> ' NONE' )
57725775BEGIN
@@ -6033,7 +6036,7 @@ BEGIN
60336036 ' Long Running Query' ,
60346037 ' https://www.brentozar.com/blitzcache/long-running-queries/' ,
60356038 ' Long running queries have been found. These are queries with an average duration longer than '
6036- + CAST (@long_running_query_warning_seconds / 1000 / 1000 AS VARCHAR (5 ))
6039+ + CAST (@long_running_query_warning_seconds / 1000 AS VARCHAR (5 ))
60376040 + ' second(s). These queries should be investigated for additional tuning options.' ) ;
60386041
60396042 IF EXISTS (SELECT 1 / 0
@@ -6290,7 +6293,7 @@ BEGIN
62906293 AND SPID = @@SPID )
62916294 INSERT INTO ##BlitzCacheResults (SPID, CheckID, Priority, FindingsGroup, Finding, URL , Details)
62926295 VALUES (@@SPID ,
6293- 33 ,
6296+ 34 ,
62946297 100 ,
62956298 ' Table Variables detected' ,
62966299 ' Table Variables' ,
@@ -6560,7 +6563,7 @@ BEGIN
65606563 IF EXISTS (SELECT 1 / 0
65616564 FROM ##BlitzCacheProcs p
65626565 WHERE p .is_spool_expensive = 1
6563- )
6566+ AND p . SPID = @@SPID )
65646567 INSERT INTO ##BlitzCacheResults (SPID, CheckID, Priority, FindingsGroup, Finding, URL , Details)
65656568 VALUES (@@SPID ,
65666569 54 ,
@@ -6573,7 +6576,7 @@ BEGIN
65736576 IF EXISTS (SELECT 1 / 0
65746577 FROM ##BlitzCacheProcs p
65756578 WHERE p .is_spool_more_rows = 1
6576- )
6579+ AND p . SPID = @@SPID )
65776580 INSERT INTO ##BlitzCacheResults (SPID, CheckID, Priority, FindingsGroup, Finding, URL , Details)
65786581 VALUES (@@SPID ,
65796582 55 ,
@@ -6586,7 +6589,7 @@ BEGIN
65866589 IF EXISTS (SELECT 1 / 0
65876590 FROM ##BlitzCacheProcs p
65886591 WHERE p .is_bad_estimate = 1
6589- )
6592+ AND p . SPID = @@SPID )
65906593 INSERT INTO ##BlitzCacheResults (SPID, CheckID, Priority, FindingsGroup, Finding, URL , Details)
65916594 VALUES (@@SPID ,
65926595 56 ,
@@ -6599,7 +6602,7 @@ BEGIN
65996602 IF EXISTS (SELECT 1 / 0
66006603 FROM ##BlitzCacheProcs p
66016604 WHERE p .is_paul_white_electric = 1
6602- )
6605+ AND p . SPID = @@SPID )
66036606 INSERT INTO ##BlitzCacheResults (SPID, CheckID, Priority, FindingsGroup, Finding, URL , Details)
66046607 VALUES (@@SPID ,
66056608 57 ,
@@ -6629,7 +6632,7 @@ BEGIN
66296632 IF EXISTS (SELECT 1 / 0
66306633 FROM ##BlitzCacheProcs p
66316634 WHERE p .is_row_goal = 1
6632- )
6635+ AND p . SPID = @@SPID )
66336636 INSERT INTO ##BlitzCacheResults (SPID, CheckID, Priority, FindingsGroup, Finding, URL , Details)
66346637 VALUES (@@SPID ,
66356638 58 ,
@@ -6642,7 +6645,7 @@ BEGIN
66426645 IF EXISTS (SELECT 1 / 0
66436646 FROM ##BlitzCacheProcs p
66446647 WHERE p .is_big_spills = 1
6645- )
6648+ AND p . SPID = @@SPID )
66466649 INSERT INTO ##BlitzCacheResults (SPID, CheckID, Priority, FindingsGroup, Finding, URL , Details)
66476650 VALUES (@@SPID ,
66486651 59 ,
@@ -6658,7 +6661,7 @@ BEGIN
66586661 IF EXISTS (SELECT 1 / 0
66596662 FROM ##BlitzCacheProcs p
66606663 WHERE p .is_mstvf = 1
6661- )
6664+ AND p . SPID = @@SPID )
66626665 INSERT INTO ##BlitzCacheResults (SPID, CheckID, Priority, FindingsGroup, Finding, URL , Details)
66636666 VALUES (@@SPID ,
66646667 60 ,
@@ -6671,7 +6674,7 @@ BEGIN
66716674 IF EXISTS (SELECT 1 / 0
66726675 FROM ##BlitzCacheProcs p
66736676 WHERE p .is_mm_join = 1
6674- )
6677+ AND p . SPID = @@SPID )
66756678 INSERT INTO ##BlitzCacheResults (SPID, CheckID, Priority, FindingsGroup, Finding, URL , Details)
66766679 VALUES (@@SPID ,
66776680 61 ,
@@ -6684,7 +6687,7 @@ BEGIN
66846687 IF EXISTS (SELECT 1 / 0
66856688 FROM ##BlitzCacheProcs p
66866689 WHERE p .is_nonsargable = 1
6687- )
6690+ AND p . SPID = @@SPID )
66886691 INSERT INTO ##BlitzCacheResults (SPID, CheckID, Priority, FindingsGroup, Finding, URL , Details)
66896692 VALUES (@@SPID ,
66906693 62 ,
@@ -6697,7 +6700,7 @@ BEGIN
66976700 IF EXISTS (SELECT 1 / 0
66986701 FROM ##BlitzCacheProcs p
66996702 WHERE CompileTime > 5000
6700- )
6703+ AND p . SPID = @@SPID )
67016704 INSERT INTO ##BlitzCacheResults (SPID, CheckID, Priority, FindingsGroup, Finding, URL , Details)
67026705 VALUES (@@SPID ,
67036706 63 ,
@@ -6710,7 +6713,7 @@ BEGIN
67106713 IF EXISTS (SELECT 1 / 0
67116714 FROM ##BlitzCacheProcs p
67126715 WHERE CompileCPU > 5000
6713- )
6716+ AND p . SPID = @@SPID )
67146717 INSERT INTO ##BlitzCacheResults (SPID, CheckID, Priority, FindingsGroup, Finding, URL , Details)
67156718 VALUES (@@SPID ,
67166719 64 ,
@@ -6722,9 +6725,9 @@ BEGIN
67226725
67236726 IF EXISTS (SELECT 1 / 0
67246727 FROM ##BlitzCacheProcs p
6725- WHERE CompileMemory > 1024
6728+ WHERE CompileMemory > 1024
67266729 AND ((CompileMemory) / (1 * CASE WHEN MaxCompileMemory = 0 THEN 1 ELSE MaxCompileMemory END ) * 100 .) >= 10 .
6727- )
6730+ AND p . SPID = @@SPID )
67286731 INSERT INTO ##BlitzCacheResults (SPID, CheckID, Priority, FindingsGroup, Finding, URL , Details)
67296732 VALUES (@@SPID ,
67306733 65 ,
@@ -6737,7 +6740,7 @@ BEGIN
67376740 IF EXISTS (SELECT 1 / 0
67386741 FROM ##BlitzCacheProcs p
67396742 WHERE p .select_with_writes = 1
6740- )
6743+ AND p . SPID = @@SPID )
67416744 INSERT INTO ##BlitzCacheResults (SPID, CheckID, Priority, FindingsGroup, Finding, URL , Details)
67426745 VALUES (@@SPID ,
67436746 66 ,
@@ -6750,7 +6753,7 @@ BEGIN
67506753 IF EXISTS (SELECT 1 / 0
67516754 FROM ##BlitzCacheProcs p
67526755 WHERE p .is_table_spool_expensive = 1
6753- )
6756+ AND p . SPID = @@SPID )
67546757 INSERT INTO ##BlitzCacheResults (SPID, CheckID, Priority, FindingsGroup, Finding, URL , Details)
67556758 VALUES (@@SPID ,
67566759 67 ,
@@ -6763,7 +6766,7 @@ BEGIN
67636766 IF EXISTS (SELECT 1 / 0
67646767 FROM ##BlitzCacheProcs p
67656768 WHERE p .is_table_spool_more_rows = 1
6766- )
6769+ AND p . SPID = @@SPID )
67676770 INSERT INTO ##BlitzCacheResults (SPID, CheckID, Priority, FindingsGroup, Finding, URL , Details)
67686771 VALUES (@@SPID ,
67696772 68 ,
0 commit comments