我有一个查询,它在 SQL Server Management Studio 中运行速度非常快,但在 sp_ExecuteSQL 下运行时运行速度非常慢。
这是否与在 sp_ExecuteSQL 下运行时未缓存执行计划有关?
最佳答案
没有。
您可以查看两个执行计划并使用以下查询对它们进行比较。
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
为“prepared”
关于SQL Server sp_ExecuteSQL 和执行计划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3710523/