1

エラー メッセージが表示されます。

System.Data.SqlClient.SqlException: タイムアウトが発生しました。

これは、デフォルトで 30 秒に設定されているコマンド タイムアウトにまでさかのぼります。案の定、プロファイリングすると、ドットで 30 秒で完了 (失敗) します。

CommandTimeout簡単な答えは、コード内の値を増やすことです。ここにキャッチがあります-私は作業する実行可能ファイルしか持っていません。

実行されているクエリは、通常 18 ~ 26 秒で実行されるストアド プロシージャであり、最近では 30 秒以上の範囲にまで増加しています。結合のある 3 つのテーブルに対する単一の醜い選択であるクエリを最適化するために、できる限りのことを行いました。データセットは成長し続け、将来再び問題になるため、これは実際にはオプションではありません。

ここやネット上の他の場所で見つけることができるすべてのアドバイスは、CommandTimeout設定できる唯一の場所は接続が設定された後のコード内であり、コマンドのタイムアウトを調整する他の方法はないと言っています。

コマンドタイムアウトのデフォルト値をオーバーライド/設定するために、実行可能ファイルの逆コンパイルを開始する準備が整いました..

プログラムを使用せずにコマンドのタイムアウト値を増やす方法、コマンドのタイムアウト値を簡単に設定する方法、または他の (うまくいけば) より賢明な解決策を得る方法についての提案はありますか?

ご協力いただきありがとうございます!

ps - SO をかなり長い間読んでいます。いつも投稿しなくても答えが見つかるので、私の評判は悪臭を放ちます。皆さんは素晴らしいです。ついに始める方法を見つけてよかったです!

4

1 に答える 1

2

コマンドのタイムアウトを変更できる唯一の方法は、コードを更新することです。アプリケーションのソースがない場合は、残念ながら、ほとんど運がありません。

これはコマンドごとに設定される値であるため、コマンドの外部からの影響はありません。

于 2011-02-26T04:14:37.567 に答える