我有一个查询,在SQL Server Management STudio中超快,在sp_ExecuteSQL下运行时超慢。
这与在spExecuteSQL下运行时不缓存执行计划有关吗?
不。
您可以看到两个执行计划,并使用以下查询对其进行比较。
SELECT usecounts, cacheobjtype, objtype, text, query_plan, value as set_options FROM sys.dm_exec_cached_plans CROSS APPLY sys.dm_exec_sql_text(plan_handle) CROSS APPLY sys.dm_exec_query_plan(plan_handle) cross APPLY sys.dm_exec_plan_attributes(plan_handle) AS epa where text like '%Some unique string in your query%' and attribute='set_options'
该sp_executesql版本将有一个objtype“准备好的”
sp_executesql
objtype