Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 6e35ca7

Browse files
Merge pull request BrentOzarULTD#1323 from BrentOzarULTD/Issue_1322
Issue 1322
2 parents c5e1594 + 4244d71 commit 6e35ca7

File tree

2 files changed

+91
-88
lines changed

2 files changed

+91
-88
lines changed

‎sp_BlitzCache.sql

Lines changed: 51 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1136,20 +1136,6 @@ CREATE TABLE #configuration (
11361136
value DECIMAL(38,0)
11371137
);
11381138

1139-
CREATE TABLE #stored_proc_info
1140-
(
1141-
SPID INT,
1142-
SqlHandle VARBINARY(64),
1143-
QueryHash BINARY(8),
1144-
variable_name NVARCHAR(128),
1145-
variable_datatype NVARCHAR(128),
1146-
converted_column_name NVARCHAR(128),
1147-
compile_time_value NVARCHAR(128),
1148-
proc_name NVARCHAR(300),
1149-
column_name NVARCHAR(128),
1150-
converted_to NVARCHAR(128)
1151-
);
1152-
11531139
CREATE TABLE #plan_creation
11541140
(
11551141
percent_24 DECIMAL(5, 2),
@@ -1200,14 +1186,28 @@ CREATE TABLE #trace_flags
12001186
session_trace_flags VARCHAR(1000)
12011187
);
12021188

1189+
CREATE TABLE #stored_proc_info
1190+
(
1191+
SPID INT,
1192+
SqlHandle VARBINARY(64),
1193+
QueryHash BINARY(8),
1194+
variable_name NVARCHAR(256),
1195+
variable_datatype NVARCHAR(256),
1196+
converted_column_name NVARCHAR(256),
1197+
compile_time_value NVARCHAR(4000),
1198+
proc_name NVARCHAR(1000),
1199+
column_name NVARCHAR(256),
1200+
converted_to NVARCHAR(256)
1201+
);
1202+
12031203
CREATE TABLE #variable_info
12041204
(
12051205
SPID INT,
12061206
QueryHash BINARY(8),
12071207
SqlHandle VARBINARY(64),
1208-
proc_name NVARCHAR(128),
1209-
variable_name NVARCHAR(200),
1210-
variable_datatype NVARCHAR(128),
1208+
proc_name NVARCHAR(1000),
1209+
variable_name NVARCHAR(256),
1210+
variable_datatype NVARCHAR(256),
12111211
compile_time_value NVARCHAR(4000)
12121212
);
12131213

@@ -1216,7 +1216,7 @@ CREATE TABLE #conversion_info
12161216
SPID INT,
12171217
QueryHash BINARY(8),
12181218
SqlHandle VARBINARY(64),
1219-
proc_name NVARCHAR(128),
1219+
proc_name NVARCHAR(256),
12201220
expression NVARCHAR(4000),
12211221
at_charindex AS CHARINDEX('@', expression),
12221222
bracket_charindex AS CHARINDEX(']', expression, CHARINDEX('@', expression)) - CHARINDEX('@', expression),
@@ -3098,9 +3098,9 @@ SELECT DISTINCT @@SPID,
30983098
CASE WHEN b.QueryType = 'Statement' THEN b.QueryType
30993099
ELSE SUBSTRING(b.QueryType, CHARINDEX('[', b.QueryType), LEN(b.QueryType) - CHARINDEX('[', b.QueryType))
31003100
END AS proc_name,
3101-
q.n.value('@Column', 'NVARCHAR(128)') AS variable_name,
3102-
q.n.value('@ParameterDataType', 'NVARCHAR(128)') AS variable_datatype,
3103-
q.n.value('@ParameterCompiledValue', 'NVARCHAR(1000)') AS compile_time_value
3101+
q.n.value('@Column', 'NVARCHAR(256)') AS variable_name,
3102+
q.n.value('@ParameterDataType', 'NVARCHAR(256)') AS variable_datatype,
3103+
q.n.value('@ParameterCompiledValue', 'NVARCHAR(4000)') AS compile_time_value
31043104
FROM #query_plan AS qp
31053105
JOIN ##bou_BlitzCacheProcs AS b
31063106
ON (b.QueryType = 'adhoc' AND b.QueryHash = qp.QueryHash)
@@ -3118,7 +3118,7 @@ SELECT DISTINCT @@SPID,
31183118
CASE WHEN b.QueryType = 'Statement' THEN b.QueryType
31193119
ELSE SUBSTRING(b.QueryType, CHARINDEX('[', b.QueryType), LEN(b.QueryType) - CHARINDEX('[', b.QueryType))
31203120
END AS proc_name,
3121-
qq.c.value('@Expression', 'NVARCHAR(128)') AS expression
3121+
qq.c.value('@Expression', 'NVARCHAR(4000)') AS expression
31223122
FROM #query_plan AS qp
31233123
JOIN ##bou_BlitzCacheProcs AS b
31243124
ON (b.QueryType = 'adhoc' AND b.QueryHash = qp.QueryHash)
@@ -3175,32 +3175,35 @@ SELECT @@SPID AS SPID,
31753175
FROM #conversion_info AS ci
31763176
OPTION ( RECOMPILE );
31773177

3178-
IF EXISTS ( SELECT *
3179-
FROM #stored_proc_info AS sp
3180-
JOIN #variable_info AS vi
3181-
ON (sp.proc_name = 'adhoc' AND sp.QueryHash = vi.QueryHash)
3182-
OR (sp.proc_name <> 'adhoc' AND sp.SqlHandle = vi.SqlHandle)
3183-
AND sp.variable_name = vi.variable_name )
3184-
BEGIN
3185-
RAISERROR(N'Updating variables', 0, 1) WITH NOWAIT;
3186-
UPDATE sp
3187-
SET sp.variable_datatype = vi.variable_datatype,
3188-
sp.compile_time_value = vi.compile_time_value
3189-
FROM #stored_proc_info AS sp
3190-
JOIN #variable_info AS vi
3191-
ON (sp.proc_name = 'adhoc' AND sp.QueryHash = vi.QueryHash)
3192-
OR (sp.proc_name <> 'adhoc' AND sp.SqlHandle = vi.SqlHandle)
3193-
AND sp.variable_name = vi.variable_name
3194-
OPTION ( RECOMPILE );
3195-
END
3196-
ELSE
3197-
BEGIN
3198-
RAISERROR(N'Inserting variables', 0, 1) WITH NOWAIT;
3199-
INSERT #stored_proc_info ( SPID, SqlHandle, QueryHash, variable_name, variable_datatype, compile_time_value, proc_name )
3200-
SELECT vi.SPID, vi.SqlHandle, vi.QueryHash, vi.variable_name, vi.variable_datatype, vi.compile_time_value, vi.proc_name
3201-
FROM #variable_info AS vi
3202-
OPTION ( RECOMPILE );
3203-
END
3178+
3179+
3180+
RAISERROR(N'Updating variables inserted procs', 0, 1) WITH NOWAIT;
3181+
UPDATE sp
3182+
SET sp.variable_datatype = vi.variable_datatype,
3183+
sp.compile_time_value = vi.compile_time_value
3184+
FROM #stored_proc_info AS sp
3185+
JOIN #variable_info AS vi
3186+
ON (sp.proc_name = 'adhoc' AND sp.QueryHash = vi.QueryHash)
3187+
OR (sp.proc_name <> 'adhoc' AND sp.SqlHandle = vi.SqlHandle)
3188+
AND sp.variable_name = vi.variable_name
3189+
OPTION ( RECOMPILE );
3190+
3191+
3192+
RAISERROR(N'Inserting variables for other procs', 0, 1) WITH NOWAIT;
3193+
INSERT #stored_proc_info
3194+
( SPID, SqlHandle, QueryHash, variable_name, variable_datatype, compile_time_value, proc_name )
3195+
SELECT vi.SPID, vi.SqlHandle, vi.QueryHash, vi.variable_name, vi.variable_datatype, vi.compile_time_value, vi.proc_name
3196+
FROM #variable_info AS vi
3197+
WHERE NOT EXISTS
3198+
(
3199+
SELECT *
3200+
FROM #stored_proc_info AS sp
3201+
WHERE (sp.proc_name = 'adhoc' AND sp.QueryHash = vi.QueryHash)
3202+
OR (sp.proc_name <> 'adhoc' AND sp.SqlHandle = vi.SqlHandle)
3203+
AND sp.variable_name = vi.variable_name
3204+
)
3205+
OPTION ( RECOMPILE );
3206+
32043207

32053208
RAISERROR(N'Updating procs', 0, 1) WITH NOWAIT;
32063209
UPDATE s

‎sp_BlitzQueryStore.sql

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -772,13 +772,13 @@ CREATE TABLE #stored_proc_info
772772
(
773773
sql_handle VARBINARY(64),
774774
query_hash BINARY(8),
775-
variable_name NVARCHAR(128),
776-
variable_datatype NVARCHAR(128),
777-
converted_column_name NVARCHAR(128),
778-
compile_time_value NVARCHAR(128),
779-
proc_name NVARCHAR(300),
780-
column_name NVARCHAR(128),
781-
converted_to NVARCHAR(128)
775+
variable_name NVARCHAR(256),
776+
variable_datatype NVARCHAR(256),
777+
converted_column_name NVARCHAR(256),
778+
compile_time_value NVARCHAR(4000),
779+
proc_name NVARCHAR(1000),
780+
column_name NVARCHAR(256),
781+
converted_to NVARCHAR(256)
782782
INDEX tf_ix_ids CLUSTERED (sql_handle, query_hash)
783783
);
784784

@@ -788,9 +788,9 @@ CREATE TABLE #variable_info
788788
(
789789
query_hash BINARY(8),
790790
sql_handle VARBINARY(64),
791-
proc_name NVARCHAR(128),
792-
variable_name NVARCHAR(200),
793-
variable_datatype NVARCHAR(128),
791+
proc_name NVARCHAR(1000),
792+
variable_name NVARCHAR(256),
793+
variable_datatype NVARCHAR(256),
794794
compile_time_value NVARCHAR(4000),
795795
INDEX vif_ix_ids CLUSTERED (sql_handle, query_hash)
796796
);
@@ -2963,9 +2963,9 @@ IF EXISTS ( SELECT 1
29632963
qp.query_hash,
29642964
qp.sql_handle,
29652965
b.proc_or_function_name AS proc_name,
2966-
q.n.value('@Column', 'NVARCHAR(128)') AS variable_name,
2967-
q.n.value('@ParameterDataType', 'NVARCHAR(128)') AS variable_datatype,
2968-
q.n.value('@ParameterCompiledValue', 'NVARCHAR(1000)') AS compile_time_value
2966+
q.n.value('@Column', 'NVARCHAR(256)') AS variable_name,
2967+
q.n.value('@ParameterDataType', 'NVARCHAR(256)') AS variable_datatype,
2968+
q.n.value('@ParameterCompiledValue', 'NVARCHAR(4000)') AS compile_time_value
29692969
FROM #query_plan AS qp
29702970
JOIN #working_warnings AS b
29712971
ON (b.query_hash = qp.query_hash AND b.proc_or_function_name = 'adhoc')
@@ -2980,7 +2980,7 @@ IF EXISTS ( SELECT 1
29802980
qp.query_hash,
29812981
qp.sql_handle,
29822982
b.proc_or_function_name AS proc_name,
2983-
qq.c.value('@Expression', 'NVARCHAR(128)') AS expression
2983+
qq.c.value('@Expression', 'NVARCHAR(4000)') AS expression
29842984
FROM #query_plan AS qp
29852985
JOIN #working_warnings AS b
29862986
ON (b.query_hash = qp.query_hash AND b.proc_or_function_name = 'adhoc')
@@ -3034,32 +3034,32 @@ IF EXISTS ( SELECT 1
30343034
FROM #conversion_info AS ci
30353035
OPTION ( RECOMPILE );
30363036

3037-
IFEXISTS ( SELECT*
3038-
FROM #stored_proc_info AS sp
3039-
JOIN #variable_info AS vi
3040-
ON (sp.proc_name = 'adhoc'ANDsp.query_hash=vi.query_hash)
3041-
OR (sp.proc_name<>'adhoc'AND sp.sql_handle=vi.sql_handle)
3042-
ANDsp.variable_name= vi.variable_name )
3043-
BEGIN
3044-
RAISERROR(N'Updating variables', 0, 1) WITHNOWAIT;
3045-
UPDATE sp
3046-
SETsp.variable_datatype=vi.variable_datatype,
3047-
sp.compile_time_value=vi.compile_time_value
3048-
FROM #stored_proc_info AS sp
3049-
JOIN #variable_info AS vi
3050-
ON (sp.proc_name='adhoc'ANDsp.query_hash=vi.query_hash)
3051-
OR (sp.proc_name<>'adhoc'ANDsp.sql_handle=vi.sql_handle)
3052-
ANDsp.variable_name= vi.variable_name
3053-
OPTION ( RECOMPILE );
3054-
END
3055-
ELSE
3056-
BEGIN
3057-
RAISERROR(N'Inserting variables', 0, 1) WITHNOWAIT;
3058-
INSERT #stored_proc_info ( sql_handle, query_hash, variable_name, variable_datatype, compile_time_value, proc_name )
3059-
SELECTvi.sql_handle, vi.query_hash, vi.variable_name, vi.variable_datatype, vi.compile_time_value, vi.proc_name
3060-
FROM #variable_info AS vi
3061-
OPTION ( RECOMPILE );
3062-
END
3037+
RAISERROR(N'Updating variables inserted procs', 0, 1) WITHNOWAIT;
3038+
UPDATE sp
3039+
SETsp.variable_datatype= vi.variable_datatype,
3040+
sp.compile_time_value = vi.compile_time_value
3041+
FROM #stored_proc_info AS sp
3042+
JOIN #variable_info AS vi
3043+
ON (sp.proc_name='adhoc'ANDsp.query_hash=vi.query_hash)
3044+
OR (sp.proc_name<>'adhoc'ANDsp.sql_handle=vi.sql_handle)
3045+
AND sp.variable_name=vi.variable_name
3046+
OPTION ( RECOMPILE );
3047+
3048+
3049+
RAISERROR(N'Inserting variables for other procs', 0, 1) WITHNOWAIT;
3050+
INSERT #stored_proc_info
3051+
( sql_handle, query_hash, variable_name, variable_datatype, compile_time_value, proc_name )
3052+
SELECTvi.sql_handle, vi.query_hash, vi.variable_name, vi.variable_datatype, vi.compile_time_value, vi.proc_name
3053+
FROM #variable_info AS vi
3054+
WHERENOTEXISTS
3055+
(
3056+
SELECT*
3057+
FROM #stored_proc_info AS sp
3058+
WHERE (sp.proc_name='adhoc'ANDsp.query_hash=vi.query_hash)
3059+
OR (sp.proc_name<>'adhoc'ANDsp.sql_handle=vi.sql_handle)
3060+
ANDsp.variable_name= vi.variable_name
3061+
)
3062+
OPTION ( RECOMPILE );
30633063

30643064
RAISERROR(N'Updating procs', 0, 1) WITH NOWAIT;
30653065
UPDATE s

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /