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 cdbc2cd

Browse files
Fixes BQS
Closes BrentOzarULTD#1316
1 parent d529af7 commit cdbc2cd

File tree

2 files changed

+38
-20
lines changed

2 files changed

+38
-20
lines changed

‎sp_BlitzCache.sql

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1147,9 +1147,7 @@ CREATE TABLE #stored_proc_info
11471147
compile_time_value NVARCHAR(128),
11481148
proc_name NVARCHAR(300),
11491149
column_name NVARCHAR(128),
1150-
converted_to NVARCHAR(128),
1151-
parameterization_type INT,
1152-
optimization_level VARCHAR(100)
1150+
converted_to NVARCHAR(128)
11531151
);
11541152

11551153
CREATE TABLE #plan_creation

‎sp_BlitzQueryStore.sql

Lines changed: 37 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -778,9 +778,7 @@ CREATE TABLE #stored_proc_info
778778
compile_time_value NVARCHAR(128),
779779
proc_name NVARCHAR(300),
780780
column_name NVARCHAR(128),
781-
converted_to NVARCHAR(128),
782-
parameterization_type INT,
783-
optimization_level VARCHAR(100),
781+
converted_to NVARCHAR(128)
784782
INDEX tf_ix_ids CLUSTERED (sql_handle, query_hash)
785783
);
786784

@@ -2969,8 +2967,9 @@ IF EXISTS ( SELECT 1
29692967
q.n.value('@ParameterDataType', 'NVARCHAR(128)') AS variable_datatype,
29702968
q.n.value('@ParameterCompiledValue', 'NVARCHAR(1000)') AS compile_time_value
29712969
FROM #query_plan AS qp
2972-
JOIN #working_warnings AS b
2973-
ON b.query_hash = qp.query_hash
2970+
JOIN #working_warnings AS b
2971+
ON (b.query_hash = qp.query_hash AND b.proc_or_function_name = 'adhoc')
2972+
OR (b.sql_handle = qp.sql_handle AND b.proc_or_function_name <> 'adhoc')
29742973
CROSS APPLY qp.query_plan.nodes('//p:QueryPlan/p:ParameterList/p:ColumnReference') AS q(n)
29752974
OPTION ( RECOMPILE );
29762975

@@ -2983,8 +2982,9 @@ IF EXISTS ( SELECT 1
29832982
b.proc_or_function_name AS proc_name,
29842983
qq.c.value('@Expression', 'NVARCHAR(128)') AS expression
29852984
FROM #query_plan AS qp
2986-
JOIN #working_warnings AS b
2987-
ON b.query_hash = qp.query_hash
2985+
JOIN #working_warnings AS b
2986+
ON (b.query_hash = qp.query_hash AND b.proc_or_function_name = 'adhoc')
2987+
OR (b.sql_handle = qp.sql_handle AND b.proc_or_function_name <> 'adhoc')
29882988
CROSS APPLY qp.query_plan.nodes('//p:QueryPlan/p:Warnings/p:PlanAffectingConvert') AS qq(c)
29892989
WHERE qq.c.exist('@ConvertIssue[.="Seek Plan"]') = 1
29902990
AND b.implicit_conversions = 1
@@ -3034,15 +3034,32 @@ IF EXISTS ( SELECT 1
30343034
FROM #conversion_info AS ci
30353035
OPTION ( RECOMPILE );
30363036

3037-
RAISERROR(N'Updating variables', 0, 1) WITH NOWAIT;
3038-
UPDATE sp
3039-
SET sp.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.query_hash = vi.query_hash
3044-
AND sp.variable_name = vi.variable_name
3045-
OPTION ( RECOMPILE );
3037+
IF EXISTS ( SELECT *
3038+
FROM #stored_proc_info AS sp
3039+
JOIN #variable_info AS vi
3040+
ON (sp.proc_name = 'adhoc' AND sp.query_hash = vi.query_hash)
3041+
OR (sp.proc_name <> 'adhoc' AND sp.sql_handle = vi.sql_handle)
3042+
AND sp.variable_name = vi.variable_name )
3043+
BEGIN
3044+
RAISERROR(N'Updating variables', 0, 1) WITH NOWAIT;
3045+
UPDATE sp
3046+
SET sp.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' AND sp.query_hash = vi.query_hash)
3051+
OR (sp.proc_name <> 'adhoc' AND sp.sql_handle = vi.sql_handle)
3052+
AND sp.variable_name = vi.variable_name
3053+
OPTION ( RECOMPILE );
3054+
END
3055+
ELSE
3056+
BEGIN
3057+
RAISERROR(N'Inserting variables', 0, 1) WITH NOWAIT;
3058+
INSERT #stored_proc_info ( sql_handle, query_hash, variable_name, variable_datatype, compile_time_value, proc_name )
3059+
SELECT vi.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
30463063

30473064
RAISERROR(N'Updating procs', 0, 1) WITH NOWAIT;
30483065
UPDATE s
@@ -3060,7 +3077,10 @@ IF EXISTS ( SELECT 1
30603077
CHARINDEX(')', s.compile_time_value) - 1
30613078
- CHARINDEX('(', s.compile_time_value)
30623079
)
3063-
ELSE s.compile_time_value
3080+
WHEN variable_datatype NOT IN ('bit', 'tinyint', 'smallint', 'int', 'bigint')
3081+
AND s.variable_datatype NOT LIKE '%binary%' THEN
3082+
QUOTENAME(compile_time_value, '''')
3083+
ELSE s.compile_time_value
30643084
END
30653085
FROM #stored_proc_info AS s
30663086
OPTION(RECOMPILE);

0 commit comments

Comments
(0)

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