我有一個存儲過程與「超時過期」錯誤。存儲過程超時 - 但從SSMS運行時很好
涉及的代碼是ADO/VB6。
存儲過程本身不是問題,您可以在查詢窗口中運行它,並且它不到一秒鐘。
用於獲取連接等的代碼也被模塊化並且在大量應用程序中使用。只有在這一個地方,超時發生在一個特定的數據庫上。
無論是否在調試中運行VB6代碼,每次嘗試失敗都會重現錯誤,然後突然一切都會神奇地重新開始工作。然後在將來的某個時候,同樣的問題會再次出現。
我不知道要放多少代碼放在這裏,沒有什麼複雜的;它基本上;
Set adoCommandObject.ActiveConnection = ...{open ADODB.Connection object}
Set rs = CreateObject("ADODB.Recordset")
Call rs.Open(adoCommandObject, , adOpenForwardOnly, adLockReadOnly)'Timeout occurs here
我一直在看在探查但是這並沒有給出任何線索,除了偶爾看到「SET NO_BROWSETABLE ON」 /「SET NO_BROWSETABLE OFF」出現的語句之前和SP運行之後。
我搜索了網絡,但無法找到任何滿意的幫助;我願意在這一點上嘗試任何事情(除了在.NET重寫,不幸的是,這不是一種選擇!)
幾個問題: 您是否在超過一段時間或即刻過期後才獲得超時? 如果很長一段時間,探查者是否同意命令的持續時間很長? – 2009-05-22 17:10:20
獲取超時經過一段時間 - 大約30秒後過期 - 我猜測超時設置是什麼,可能是默認設置。 是的探查器同意 - 在VB6代碼中拋出錯誤後,您將看到探查器中的sp完成,並記錄了很長的持續時間。 – DannykPowell 2009-05-22 21:51:21
您是否確定解決方案,因爲我處於similer情況! – 2010-08-15 04:17:01