2014-07-04 53 views
-2
using (EuDatabase _db = new EuDatabase()) 
      { 
       var data = _db.sp_GetInfo(vid, tid, tzone).ToList(); 

       if (data != null && data.Count() > 0) 
       { 
       } 
      } 

我的存儲過程將從多於40000條記錄中返回特定的1條記錄。腳本包含3個表上的連接。三張表中只有一張表包含40000條記錄。 此查詢正常工作,但10至15分鐘後,數據響應變得緩慢。數據不會到達,如果條件不成立,那麼最​​後我們會得到超時到期錯誤。asp.net存儲過程中的每十個超時過期

錯誤是:

Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior) 
at System.Data.Objects.ObjectContext.CreateFunctionObjectResult[TElement](EntityCommand entityCommand, ReadOnlyMetadataCollection`1 entitySets, EdmType[] edmTypes, MergeOption mergeOption) 
at System.Data.Objects.ObjectContext.ExecuteFunction[TElement](String functionName, MergeOption mergeOption, ObjectParameter[] parameters) 
at System.Data.Objects.ObjectContext.ExecuteFunction[TElement](String functionName, ObjectParameter[] parameters) 

我們已經在具有多個數據表進行索引。
我們在web.config中增加了連接超時。
我們還增加了CommandTimeout期限。
但我們仍然得到相同的錯誤。
請給我們解決方案。
預先感謝您。

+0

您能編輯和整理您的問題嗎?你沒有任何判例,你有一個空的「在這裏輸入代碼」塊,你的代碼在頂部沒有解釋它的用途。一般來說,如果你有一個很好的問題,更多的人會閱讀和回答。 – Tanner

回答

0

請參閱this答案來自Gabriel。希望它能解決你的問題。但不是增加超時限制,總是建議找出爲什麼要花這麼長時間才能執行查詢。

+0

我們也應用了這個答案。但是我們也遇到同樣的問題。每5秒調用一次方法,每次約10分鐘後出現超時問題。那麼當我們要從數據庫執行的時候也是同樣的查詢。那麼它很快回復。但在編碼時會產生超時異常。 – user3804782