我会怀疑参数嗅探。
由于不同的set
选项,用于您的应用程序连接的缓存执行计划可能无法用于您的SSMS连接,因此它将生成一个新的计划。
您可以使用下面的查询来检索存储过程的缓存计划。然后进行比较以查看它们是否不同(例如,慢速执行索引搜索并在另一个进行扫描的位置添加书签查找功能吗?)
Use YourDatabase;
SELECT *
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 sys.dm_exec_sql_text.OBJECTID=object_id('YourProcName')
and attribute='set_options'