一个长存储过程会在一些高管后停止返回结果,为什么?

时间:2011-01-26 14:54:53

标签: sql-server-2005

您好 我有一个很长的存储过程,用于在我的asp.net(c#)应用程序和另一个控制台应用程序(c#)中填充GridView。每次我在管理工作室运行这个sp它工作正常。有些日子,这个sp停止向应用程序返回值(但同时从管理工作室执行时工作正常)。为什么或如何发生这种情况? (我正在使用ms sql 2005并赢得服务器2003) 感谢

1 个答案:

答案 0 :(得分:0)

你没有提供太多详细信息,但我猜你会遇到超时错误并且你有一个参数嗅探问题(在SSMS中运行良好但在应用程序中没有运行通常对此有所贡献。)

下次出现问题时,它无法在您的应用程序中运行,但在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'