1

特定のストアド プロシージャを実行しようとすると、Web アプリケーションがタイムアウト例外をスローすることがあります。その瞬間から、データベース サーバーを再起動するまで、ストアド プロシージャは二度と実行されません。

奇妙なことに、ストアド プロシージャは SQL Server Management Studio 内から手動で実行でき、実行時間は正確です (約 0.2 秒)。

しかし、同じ正確な呼び出しが Web サーバーから行われた場合... タイムアウト。そんなことがあるものか?

私は SQL Server 2012 を使用しており、Linq2Sql を使用してコード内のストアド プロシージャをマッピングしています。

追加情報: このブログ投稿から「ブロックの検出」SQL を実行してみました: http://blog.sqlauthority.com/2010/10/06/sql-server-quickest-way-to-identify-blocking-query- and-resolution-dirty-solution/ただし、行は返されません。

4

1 に答える 1

1

おそらく、不正なクエリプランがSQLサーバーにキャッシュされています。再コンパイルオプションを使用して、ストアドプロシージャの再コンパイルを試みることができます。このオプションを使用すると、SPはキャッシュされず、呼び出されるたびに再コンパイルされます。

于 2013-01-14T12:35:32.707 に答える