0

MS SQL Server 2008を使用していますが、次のエラーが発生します。どうすればこれを修正できますか?タイムアウトを60秒に設定するのが良いアプローチだと思いますか?

お時間をいただきありがとうございます、

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 
4

1 に答える 1

2

コマンドのタイムアウトを変更するかどうかは、いくつかの要因によって異なります。そもそもタイムアウトが発生している理由を見つけるために、まず時間を費やす必要があると思います。

  • 一度に取得する情報が多すぎませんか?
  • どうにかしてパフォーマンスを向上させることはできますか。関連するテーブルにいくつかのインデックスを追加しますか?
  • テーブルをロックし、クエリをブロックする別のプロセス (または他のプロセス) はありますか?

理由を理解したら、コマンドのタイムアウトを増やすことが正しいことかどうかを判断できます。しかし、特に問題が外部プロセスによってブロックされている場合は、タイムアウトを増やすことを非常にためらいます. それが問題を悪化させる可能性があります。

于 2012-06-01T11:33:51.717 に答える