我正在使用存储过程来检索记录并将其显示在网格中。
第一次,它会抛出一个异常:
超时已过。在操作完成之前超时时间已过或服务器没有响应。
堆栈跟踪
在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,Boolean breakConnection)
在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常,Boolean breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
在 System.Data .SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
在 System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
在 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, Boolean returnStream, Boolean async)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String 方法, DbAsyncResult 结果)
在System.Data.SqlClient.SqlCommand.ExecuteReader(
CommandBehavior 行为,String 方法)的 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior 行为,String 方法)的System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,布尔 returnStream,String 方法)
( )
我用了
SELECT *
FROM sys.dm_tran_session_transactions
检查我的数据库中当前有多少活动事务,但我没有找到。
第二次以后这个存储过程完美运行(不会抛出超时异常)。这种行为的原因可能是什么?