0

私は非常に特有の問題を抱えており、その根底に到達するのに役立つ可能性のある提案を探しています。

SQL Server 2008R2データベース上の.NET3.5(MVC3)にアプリケーションがあります。

ローカルおよび他の2つのサーバーでは、正常に実行されます。ただし、ライブサーバーには、30秒後に常にタイムアウトするストアドプロシージャがあります。

データベースでストアドプロシージャを実行すると、数秒かかります。ただし、ストアドプロシージャがアプリケーションによって受信された場合、プロファイラーは30秒以上かかったと言います。プロファイラーが受け取る同じクエリは、DBで直接実行すると、すぐに実行されます。

さらに、他の3つのローカルサーバーでも同じ問題は発生しません。

あなたが理解できるように、それは私を狂わせています、そして私はこれを診断する方法の手がかりさえ持っていません。偶数ログは、タイムアウトを警告として表示するだけです。

誰かが以前にこのようなものを持っていましたか、どこで修正を探し始めることができますか?

どうもありがとう

4

1 に答える 1

1

サーバーでクエリを実行するときに発生しない、アプリケーションで発生しているロックが発生している可能性があります。

これをテストするには、READ UNCOMMITTEDまたはNOLOCKヒントを使用してアプリケーションでクエリを実行します。それが機能する場合は、呼び出しのシーケンスを確認するか、分離レベルがあまり積極的でないかどうかを確認する必要があります。

これらを特定するのは難しい場合があります。

于 2012-12-03T12:44:12.177 に答える