Cute Bear
Cute Bear

Reputation: 3293

SQL Server: Timeout expired

I am using MS SQL Server 2008, and I get the following error. How can I fix this? Do you guys think setting Timeout to 60 second is a good approach?

Thank you for your time,

Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. Stack Trace: at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlDataReader.ConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at 
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
 at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior) at System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) at Karkas.Core.DataUtil.HelperFunctions.SorguCalistir(DataTable dt, SqlCommand cmd) at Karkas.Core.DataUtil.HelperFunctions.SorguCalistir(DataTable dt, String sql, CommandType cmdType, SqlParameter[] parameters) at Karkas.Core.DataUtil.AdoTemplate.DataTableDoldur(DataTable dataTable, String sql, CommandType commandType, SqlParameter[] parameters) at Karkas.Core.DataUtil.AdoTemplate.DataTableOlustur(String sql, SqlParameter[] parameters) at 

Upvotes: 0

Views: 2636

Answers (1)

user1429080
user1429080

Reputation: 9166

Whether or not to change the command timeout depends on several things. It think you should first spend some time finding out why the timeout is occuring in the first place:

  • Are you fetching too much information in one go?
  • Can you improve the performance somehow. Maybe add som indexes on the relevant tables?
  • Is there another process (or other processes) locking the tables, blocking you query

After you have figured out the reason, you can then decide if increasing the command timeout is the right thing to do. But especially if the problem is blocking by outher processes I would be very hesitant to increase the timeout. That might make the problem worse.

Upvotes: 2

Related Questions