2011-01-26 13 views
0

嗨 我有一個很長的存儲過程,用於在我的asp.net(c#)應用程序和另一個控制檯應用程序(c#)中填充GridView。每次我在管理工作室運行這個sp,它都可以正常工作。有些日子,這個sp會停止嚮應用程序返回值(但在從管理工作室執行時同時工作正常)。爲什麼或者如何發生這種情況? (我使用ms sql 2005和win server 2003) 謝謝長存儲過程在某些exec後停止返回結果,爲什麼?

回答

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' 
+0

我忘了提及,如果我只是做一個alter proc_name沒有任何更改sp,問題就解決了。並且你是對的,它給予超時 – user590747 2011-01-26 16:02:07