Skip to content

Commit 976a44c

Browse files
authored
Merge pull request #3176 from codykonior/patch-1
Add SQL 2022 RTM PSPO parsing
2 parents bb5ae75 + d1df2f5 commit 976a44c

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

sp_BlitzCache.sql

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3753,6 +3753,35 @@ WHERE QueryType = 'Statement'
37533753
AND SPID = @@SPID
37543754
OPTION (RECOMPILE);
37553755

3756+
/* Update to grab stored procedure name for individual statements when PSPO is detected */
3757+
UPDATE p
3758+
SET QueryType = QueryType + ' (parent ' +
3759+
+ QUOTENAME(OBJECT_SCHEMA_NAME(s.object_id, s.database_id))
3760+
+ '.'
3761+
+ QUOTENAME(OBJECT_NAME(s.object_id, s.database_id)) + ')'
3762+
FROM ##BlitzCacheProcs p
3763+
OUTER APPLY (
3764+
SELECT REPLACE(REPLACE(REPLACE(REPLACE(p.QueryText, ' (', '('), '( ', '('), ' =', '='), '= ', '=') AS NormalizedQueryText
3765+
) a
3766+
OUTER APPLY (
3767+
SELECT CHARINDEX('option(PLAN PER VALUE(ObjectID=', a.NormalizedQueryText) AS OptionStart
3768+
) b
3769+
OUTER APPLY (
3770+
SELECT SUBSTRING(a.NormalizedQueryText, b.OptionStart + 31, LEN(a.NormalizedQueryText) - b.OptionStart - 30) AS OptionSubstring
3771+
WHERE b.OptionStart > 0
3772+
) c
3773+
OUTER APPLY (
3774+
SELECT PATINDEX('%[^0-9]%', c.OptionSubstring) AS ObjectLength
3775+
) d
3776+
OUTER APPLY (
3777+
SELECT TRY_CAST(SUBSTRING(OptionSubstring, 1, d.ObjectLength - 1) AS INT) AS ObjectId
3778+
) e
3779+
JOIN sys.dm_exec_procedure_stats s ON DB_ID(p.DatabaseName) = s.database_id AND e.ObjectId = s.object_id
3780+
WHERE p.QueryType = 'Statement'
3781+
AND p.SPID = @@SPID
3782+
AND s.object_id IS NOT NULL
3783+
OPTION (RECOMPILE);
3784+
37563785
RAISERROR(N'Attempting to get function name for individual statements', 0, 1) WITH NOWAIT;
37573786
DECLARE @function_update_sql NVARCHAR(MAX) = N''
37583787
IF EXISTS (SELECT 1/0 FROM sys.all_objects AS o WHERE o.name = 'dm_exec_function_stats')

0 commit comments

Comments
 (0)