私は数年前に修正せずに正常に動作していたWebサービスを持っています。突然今日は機能したくないと判断し、SQLタイムアウトをスローします。SQL Serverのタイムアウトのトラブルシューティング
System.Data.SqlClient.SqlException:タイムアウトが切れています。操作が完了する前にタイムアウト時間が経過したか、サーバーが応答していません。
このWebサービスはデータベースと同じサーバー上にあり、SQLトレースからクエリを取り出して管理スタジオで実行すると、1秒未満で戻ることに注意してください。しかし、Webサービスから確実に呼び出されたときに、正確に30秒後にタイムアウトします。私はデータベースに接続するためにエンタープライズライブラリを使用しているので、ランダムに失敗し始めたとは想像できません。
私は突然何が働くのを止めることができるのかよく分かりません。私はそれがあるアプリケーションプールをリサイクルし、それが使用していたと見たSQLプロセスを再起動しました。同じ振る舞い。どのように私はこれを解決することができますか?
更新日:ミッチがに釘付けされています。 sproc定義の "AS"キーワードの前に "RECOMPILE WITH"を追加するとすぐに、それは生き返りました。ブラボー!
@Chris:最後の溝がなければRECOMPILEを付けないでください。 RECOMPILE FORを使用すると、はるかにターゲットが絞られます –