SQL Server sp_ExecuteSQL 和执行计划

标签 sql sql-server sql-server-2005 tsql sql-execution-plan

我有一个查询,它在 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/

相关文章:

SQL Server - 在联接中正确分组

sql-server - 无法在 SSIS 中在 unicode 和非 unicode 字符串数据类型之间进行转换

c# - 是否可以运行在 sql server 2008 上构建的应用程序以与 2005 一起运行

sql - 需要计算列中的重复项,并在 SQL 中分离出具有某些条件的项

php - 如何计算页面加载时有多少查询?

sql - 几乎相似值搜索算法

SQL 2005 标准数据类型

sql - Postgres : DB information for logging purpose

sql-server - sql server 中 UNION 的替代

sql-server-2005 - 列出 SQL Server 2005 中用户定义的错误消息