超时已过期。超时时间已过的操作完成之前或在服务器未响应
我使用存储的过程来检索的记录,并在网格中显示它。超时已过期。超时时间已过的操作完成之前或在服务器未响应
第一次,它会抛出一个异常:
超时过期。操作完成之前超时的时间或服务器没有响应。
堆栈跟踪
在System.Data.SqlClient.SqlConnection.OnError(SqlException异常,布尔breakConnection)
在System.Data.SqlClient.SqlInternalConnection.OnError(SqlException异常,布尔breakConnection)
在系统.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
在System.Data.SqlClient.TdsParser.Run(runBehavior runBehavior,SqlCommand的cmdHandler,SqlDataReader的数据流,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj)
在System.Data.SqlClient.SqlDataReader.ConsumeMetaDat一个()
在System.Data.SqlClient.SqlDataReader.get_MetaData()
在System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader的DS,RunBehavior runBehavior,字符串resetOptionsString)
在System.Data.SqlClient.SqlCommand。 RunExecuteReaderTds(的CommandBehavior cmdBehavior,runBehavior runBehavior,布尔returnStream,布尔异步)
在System.Data.SqlClient.SqlCommand.RunExecuteReader(的CommandBehavior cmdBehavior,runBehavior runBehavior,布尔returnStream,字符串方法,DbAsyncResult结果)
在System.Data.SqlClient的.SqlCommand.RunExecuteReader(的CommandBehavior cmdBehavior,runBehavior runBehavior,布尔returnStream,字符串方法)
在System.Data.SqlClient.SqlCommand.ExecuteReader(的CommandBehavior行为,字符串方法)
在System.Data.SqlClient.SqlCommand.ExecuteReader()
我用
SELECT *
FROM sys.dm_tran_session_transactions
检查如何许多活动交易目前在我的数据库中,而我没有找到。
对于第二次以后完美运行此存储过程(不会抛出超时除外)。这种行为的原因是什么?
如果你的存储过程是复杂的,或者你的数据库设计不佳(如缺少索引),那么SQL Server可能会遇到问题想出最佳的执行计划,可能无法评估所有选项所以它会评估尽可能多的,然后会选择一些东西。所用的时间可能超过您的超时限制。
第二次,你正在执行相同的存储过程,所以SQL Server可以保留它第一次完成的所有工作,并且能够完成评估它的选项,并在你获得另一个时间之前返回数据出。
我有一个进程,就像这样。如果重新启动我的服务器,第一次运行proc时,我总是得到一个超时,但第二次它总是有效。
SP有计算和一些wat复杂,如果我将timeout属性设置为零会有帮助吗? – 2012-07-26 10:14:24
我不确定将其设置为零。但玩超时值真的是治疗症状,而不是问题。如果可以的话,你最好尝试改进数据库设计/存储过程。 – DeanOC 2012-07-26 20:08:59
[超时的可能重复过期。在操作完成之前已经超时的时间或服务器没有响应](http://stackoverflow.com/questions/5874706/timeout-expired-the-timeout-period-elapsed-prior-to-completion-of-操作) – 2012-07-26 10:39:45
[Timeout expired可能重复。操作完成之前超时的时间或服务器没有响应。该声明已被终止](http://stackoverflow.com/questions/8602395/timeout-expired-the-timeout-period-elapsed-prior-to-completion-of-the-operation) – 2016-12-23 11:35:58