@@ -1682,6 +1682,7 @@ RAISERROR(N'Attempting to aggregate stored proc info from separate statements',
1682
1682
SUM (b .LastReturnedRows ) AS LastReturnedRows
1683
1683
FROM ##bou_BlitzCacheProcs b
1684
1684
WHERE b .QueryHash IS NOT NULL
1685
+ AND b .SPID = @@SPID
1685
1686
GROUP BY b .SqlHandle
1686
1687
)
1687
1688
UPDATE b
@@ -1695,6 +1696,7 @@ FROM ##bou_BlitzCacheProcs b
1695
1696
JOIN agg b2
1696
1697
ON b2 .SqlHandle = b .SqlHandle
1697
1698
WHERE b .QueryHash IS NULL
1699
+ AND b .SPID = @@SPID
1698
1700
OPTION (RECOMPILE ) ;
1699
1701
1700
1702
/* Compute the total CPU, etc across our active set of the plan cache.
@@ -1760,6 +1762,7 @@ FROM (
1760
1762
LastExecutionTime
1761
1763
FROM ##bou_BlitzCacheProcs
1762
1764
WHERE PlanHandle IS NOT NULL
1765
+ AND SPID = @@SPID
1763
1766
GROUP BY PlanHandle,
1764
1767
TotalCPU,
1765
1768
TotalDuration,
@@ -1772,6 +1775,7 @@ FROM (
1772
1775
) AS y
1773
1776
WHERE ##bou_BlitzCacheProcs .PlanHandle = y .PlanHandle
1774
1777
AND ##bou_BlitzCacheProcs .PlanHandle IS NOT NULL
1778
+ AND ##bou_BlitzCacheProcs .SPID = @@SPID
1775
1779
OPTION (RECOMPILE ) ;
1776
1780
1777
1781
@@ -1817,6 +1821,7 @@ FROM (
1817
1821
PlanCreationTime,
1818
1822
LastExecutionTime
1819
1823
FROM ##bou_BlitzCacheProcs
1824
+ WHERE SPID = @@SPID
1820
1825
GROUP BY DatabaseName,
1821
1826
SqlHandle,
1822
1827
QueryHash,
@@ -1847,6 +1852,7 @@ SELECT QueryHash ,
1847
1852
INTO #statements
1848
1853
FROM ##bou_BlitzCacheProcs p
1849
1854
CROSS APPLY p .QueryPlan .nodes (' //p:StmtSimple' ) AS q(n)
1855
+ WHERE p .SPID = @@SPID
1850
1856
OPTION (RECOMPILE ) ;
1851
1857
1852
1858
WITH XMLNAMESPACES(' http://schemas.microsoft.com/sqlserver/2004/07/showplan' AS p)
@@ -1890,6 +1896,7 @@ FROM (
1890
1896
COUNT (QueryHash) AS number_of_plans,
1891
1897
QueryHash
1892
1898
FROM ##bou_BlitzCacheProcs
1899
+ WHERE SPID = @@SPID
1893
1900
GROUP BY QueryHash
1894
1901
) AS x
1895
1902
WHERE ##bou_BlitzCacheProcs .QueryHash = x .QueryHash
@@ -1915,6 +1922,7 @@ SET QueryPlanCost = CASE WHEN QueryType LIKE '%Stored Procedure%' THEN
1915
1922
END
1916
1923
FROM #statements s
1917
1924
WHERE s .QueryHash = ##bou_BlitzCacheProcs .QueryHash
1925
+ AND SPID = @@SPID
1918
1926
OPTION (RECOMPILE );
1919
1927
1920
1928
-- Gather Stored Proc costs
@@ -1947,6 +1955,7 @@ RAISERROR(N'Gathering stored procedure costs', 0, 1) WITH NOWAIT;
1947
1955
FROM QueryCostUpdate qcu
1948
1956
JOIN ##bou_BlitzCacheProcs AS b
1949
1957
ON qcu .SqlHandle = b .SqlHandle
1958
+ AND b .SPID = @@SPID
1950
1959
OPTION (RECOMPILE );
1951
1960
1952
1961
-- query level checks
@@ -1965,6 +1974,7 @@ SET missing_index_count = query_plan.value('count(/p:QueryPlan/p:MissingInde
1965
1974
is_forced_serial = CASE WHEN query_plan .value (' count(/p:QueryPlan/@NonParallelPlanReason)' , ' int' ) > 0 THEN 1 END
1966
1975
FROM #query_plan qp
1967
1976
WHERE qp .QueryHash = ##bou_BlitzCacheProcs .QueryHash
1977
+ AND SPID = @@SPID
1968
1978
OPTION (RECOMPILE );
1969
1979
1970
1980
-- operator level checks
@@ -1989,6 +1999,7 @@ FROM ##bou_BlitzCacheProcs p
1989
1999
relop .exist (' /p:RelOp/p:Warnings' ) AS relop_warnings
1990
2000
FROM #relop qs
1991
2001
) AS x ON p .SqlHandle = x .SqlHandle
2002
+ WHERE SPID = @@SPID
1992
2003
OPTION (RECOMPILE );
1993
2004
1994
2005
@@ -2006,6 +2017,7 @@ SET p.function_count = x.function_count,
2006
2017
p .clr_function_count = x .clr_function_count
2007
2018
FROM ##bou_BlitzCacheProcs AS p
2008
2019
JOIN x ON x .QueryHash = p .QueryHash
2020
+ AND SPID = @@SPID
2009
2021
OPTION (RECOMPILE );
2010
2022
2011
2023
@@ -2021,6 +2033,7 @@ FROM #relop qs
2021
2033
WHERE [relop].exist(' /p:RelOp/p:IndexScan[(@Lookup[.="1"])]' ) = 1
2022
2034
) AS x
2023
2035
WHERE ##bou_BlitzCacheProcs .SqlHandle = x .SqlHandle
2036
+ AND SPID = @@SPID
2024
2037
OPTION (RECOMPILE ) ;
2025
2038
2026
2039
@@ -2036,6 +2049,7 @@ FROM #relop qs
2036
2049
WHERE [relop].exist(' /p:RelOp[(@PhysicalOp[contains(., "Remote")])]' ) = 1
2037
2050
) AS x
2038
2051
WHERE ##bou_BlitzCacheProcs .SqlHandle = x .SqlHandle
2052
+ AND SPID = @@SPID
2039
2053
OPTION (RECOMPILE ) ;
2040
2054
2041
2055
RAISERROR (N ' Checking for expensive sorts' , 0 , 1 ) WITH NOWAIT ;
@@ -2051,6 +2065,7 @@ FROM #relop qs
2051
2065
WHERE [relop].exist(' /p:RelOp[(@PhysicalOp[.="Sort"])]' ) = 1
2052
2066
) AS x
2053
2067
WHERE ##bou_BlitzCacheProcs .SqlHandle = x .SqlHandle
2068
+ AND SPID = @@SPID
2054
2069
OPTION (RECOMPILE ) ;
2055
2070
2056
2071
RAISERROR (N ' Checking for icky cursors' , 0 , 1 ) WITH NOWAIT ;
@@ -2062,6 +2077,7 @@ FROM ##bou_BlitzCacheProcs b
2062
2077
JOIN #statements AS qs
2063
2078
ON b .QueryHash = qs .QueryHash
2064
2079
CROSS APPLY qs .statement .nodes (' /p:StmtCursor' ) AS n1(fn)
2080
+ WHERE SPID = @@SPID
2065
2081
OPTION (RECOMPILE ) ;
2066
2082
2067
2083
@@ -2096,6 +2112,7 @@ SELECT
2096
2112
FROM #relop qs
2097
2113
CROSS APPLY qs .relop .nodes (' //p:TableScan' ) AS q(n)
2098
2114
) AS x ON b .SqlHandle = x .SqlHandle
2115
+ WHERE SPID = @@SPID
2099
2116
OPTION (RECOMPILE ) ;
2100
2117
2101
2118
@@ -2111,6 +2128,7 @@ FROM #relop qs
2111
2128
WHERE [relop].exist(' /p:RelOp/p:IndexScan[(@Storage[.="ColumnStore"])]' ) = 1
2112
2129
) AS x
2113
2130
WHERE ##bou_BlitzCacheProcs .SqlHandle = x .SqlHandle
2131
+ AND SPID = @@SPID
2114
2132
OPTION (RECOMPILE ) ;
2115
2133
2116
2134
@@ -2126,6 +2144,7 @@ CROSS APPLY relop.nodes('/p:RelOp/p:ComputeScalar/p:DefinedValues/p:DefinedValue
2126
2144
WHERE n .fn .exist(' /p:RelOp/p:ComputeScalar/p:DefinedValues/p:DefinedValue/p:ColumnReference[(@ComputedColumn[.="1"])]' ) = 1
2127
2145
) AS x
2128
2146
WHERE ##bou_BlitzCacheProcs .SqlHandle = x .SqlHandle
2147
+ AND SPID = @@SPID
2129
2148
OPTION (RECOMPILE )
2130
2149
2131
2150
@@ -2141,6 +2160,7 @@ FROM #relop AS r
2141
2160
CROSS APPLY r .relop .nodes (' /p:RelOp/p:Filter/p:Predicate/p:ScalarOperator/p:Compare/p:ScalarOperator/p:UserDefinedFunction' ) c(n)
2142
2161
) x
2143
2162
WHERE ##bou_BlitzCacheProcs .SqlHandle = x .SqlHandle
2163
+ AND SPID = @@SPID
2144
2164
OPTION (RECOMPILE )
2145
2165
2146
2166
RAISERROR (N ' Checking modification queries that hit lots of indexes' , 0 , 1 ) WITH NOWAIT ;
@@ -2193,6 +2213,7 @@ SET b.index_insert_count = iops.index_insert_count,
2193
2213
b .table_delete_count = iops .table_delete_count
2194
2214
FROM ##bou_BlitzCacheProcs AS b
2195
2215
JOIN iops ON iops .SqlHandle = b .SqlHandle
2216
+ WHERE SPID = @@SPID
2196
2217
OPTION (RECOMPILE );
2197
2218
2198
2219
IF @v >= 12
@@ -2204,6 +2225,7 @@ BEGIN
2204
2225
SET downlevel_estimator = CASE WHEN statement .value (' min(//p:StmtSimple/@CardinalityEstimationModelVersion)' , ' int' ) < (@v * 10 ) THEN 1 END
2205
2226
FROM ##bou_BlitzCacheProcs p
2206
2227
JOIN #statements s ON p .QueryHash = s .QueryHash
2228
+ WHERE SPID = @@SPID
2207
2229
OPTION (RECOMPILE ) ;
2208
2230
END ;
2209
2231
@@ -2233,6 +2255,7 @@ SELECT COUNT(DISTINCT QueryHash) AS distinct_plan_count,
2233
2255
COUNT (QueryHash) AS number_of_plans,
2234
2256
QueryHash
2235
2257
FROM ##bou_BlitzCacheProcs
2258
+ WHERE SPID = @@SPID
2236
2259
GROUP BY QueryHash
2237
2260
) AS x
2238
2261
WHERE ##bou_BlitzCacheProcs .QueryHash = x .QueryHash
@@ -2248,6 +2271,7 @@ SET QueryType = QueryType + ' (parent ' +
2248
2271
FROM ##bou_BlitzCacheProcs p
2249
2272
JOIN sys .dm_exec_procedure_stats s ON p .SqlHandle = s .sql_handle
2250
2273
WHERE QueryType = ' Statement'
2274
+ AND SPID = @@SPID
2251
2275
2252
2276
/* Trace Flag Checks 2014 SP2 and 2016 SP1 only)*/
2253
2277
RAISERROR (N ' Trace flag checks' , 0 , 1 ) WITH NOWAIT ;
@@ -2284,7 +2308,8 @@ OPTION (RECOMPILE);
2284
2308
UPDATE p
2285
2309
SET p .trace_flags_session = tf .session_trace_flags
2286
2310
FROM ##bou_BlitzCacheProcs p
2287
- JOIN #trace_flags tf ON tf .QueryHash = p .QueryHash -- AND tf.SqlHandle = p.PlanHandle
2311
+ JOIN #trace_flags tf ON tf .QueryHash = p .QueryHash
2312
+ WHERE SPID = @@SPID
2288
2313
OPTION (RECOMPILE );
2289
2314
2290
2315
IF @SkipAnalysis = 1
@@ -2401,6 +2426,7 @@ SET frequent_execution = CASE WHEN ExecutionsPerMinute > @execution_threshold
2401
2426
is_remote_query_expensive = CASE WHEN remote_query_cost >= QueryPlanCost * .05 THEN 1 END ,
2402
2427
is_forced_serial = CASE WHEN is_forced_serial = 1 AND QueryPlanCost > (@ctp / 2 ) THEN 1 END ,
2403
2428
is_unused_grant = CASE WHEN PercentMemoryGrantUsed <= @memory_grant_warning_percent AND MinGrantKB > @MinMemoryPerQuery THEN 1 END
2429
+ WHERE SPID = @@SPID
2404
2430
OPTION (RECOMPILE ) ;
2405
2431
2406
2432
@@ -2425,6 +2451,7 @@ UPDATE p
2425
2451
FROM ##bou_BlitzCacheProcs p
2426
2452
CROSS APPLY sys .dm_exec_plan_attributes (p .PlanHandle ) pa
2427
2453
WHERE pa .attribute = ' set_options'
2454
+ AND SPID = @@SPID
2428
2455
OPTION (RECOMPILE ) ;
2429
2456
2430
2457
@@ -2434,6 +2461,7 @@ SET is_cursor = CASE WHEN CAST(pa.value AS INT) <> 0 THEN 1 END
2434
2461
FROM ##bou_BlitzCacheProcs p
2435
2462
CROSS APPLY sys .dm_exec_plan_attributes (p .PlanHandle ) pa
2436
2463
WHERE pa .attribute LIKE ' %cursor%'
2464
+ AND SPID = @@SPID
2437
2465
OPTION (RECOMPILE ) ;
2438
2466
2439
2467
@@ -2491,6 +2519,7 @@ SET Warnings = CASE WHEN QueryPlan IS NULL THEN 'We couldn''t find a plan for
2491
2519
CASE WHEN index_ops >= 5 THEN ' , ' + CONVERT (VARCHAR (10 ), index_ops) + ' Indexes Modified' ELSE ' ' END
2492
2520
, 2 , 200000 )
2493
2521
END
2522
+ WHERE SPID = @@SPID
2494
2523
OPTION (RECOMPILE ) ;
2495
2524
2496
2525
@@ -2615,6 +2644,7 @@ BEGIN
2615
2644
+ N ' ExecutionsPerMinute, PlanCreationTime, LastExecutionTime, PlanHandle, SqlHandle, QueryHash, StatementStartOffset, StatementEndOffset, MinReturnedRows, MaxReturnedRows, AverageReturnedRows, TotalReturnedRows, QueryText, QueryPlan, NumberOfPlans, NumberOfDistinctPlans, Warnings, '
2616
2645
+ N ' SerialRequiredMemory, SerialDesiredMemory, MinGrantKB, MaxGrantKB, MinUsedGrantKB, MaxUsedGrantKB, PercentMemoryGrantUsed, AvgMaxMemoryGrant, QueryPlanCost '
2617
2646
+ N ' FROM ##bou_BlitzCacheProcs '
2647
+ + N ' WHERE SPID = @@SPID '
2618
2648
2619
2649
SELECT @insert_sql + = N ' ORDER BY ' + CASE @SortOrder WHEN ' cpu' THEN N ' TotalCPU '
2620
2650
WHEN ' reads' THEN N ' TotalReads '
@@ -2696,7 +2726,8 @@ BEGIN
2696
2726
QueryPlanHash,
2697
2727
COALESCE(SetOptions, '' '' ) AS [SET Options]
2698
2728
FROM ##bou_BlitzCacheProcs
2699
- WHERE 1 = 1 ' + @nl
2729
+ WHERE 1 = 1
2730
+ AND SPID = @@SPID ' + @nl
2700
2731
2701
2732
SELECT @sql + = N ' ORDER BY ' + CASE @SortOrder WHEN ' cpu' THEN ' TotalCPU '
2702
2733
WHEN ' reads' THEN ' TotalReads '
0 commit comments