そのため、10年前のシステムで.net 3.5 Webフロントエンドを使用して、大規模なデータベース(30ギガ)のSQL2005を使用しています。新旧のビットがあります
私たちはますます頻繁に起こっている問題を抱えています。
ストアドプロシージャ(これまでに4つの異なるプロシージャがあります)は、タイムアウトすることを決定します。呼び出しはウェブサーバーから発生しており、30秒のタイムアウトに達し、エラーログに記録されます。Webサイトはシングルログインを使用します(これが間違っていることはわかっていますが、レガシーコードのために変更できません)。
この直後、まったく同じ呼び出しを実行し、(私としてログインして)1秒かかります。
この問題は、ドロップして再作成し、タイムアウトの負荷がかかるまで、この1つのストアドプロシージャに残ります。各sp呼び出しには、異なるパラメーターがあります。現在のユーザーに関連するすべての符号なしシフトを取得する場合と同様に、現在のユーザーはパラメーターとして渡されます
解決策は機能しますが、その理由はよくわかりません。
リリースサイクルは2週間で、このエラーはその間いつでも発生します。これは、リリースの翌日、リリースの1週間後に発生し、最後の1つはリリースの12日後です。
各リリースでSQLマルチスクリプトを実行し、ストアドプロシージャ/トリガー/関数/ビューをすべて削除して再作成します。
私が考えることができるのは、ストアドプロシージャの実行プランが破損しているか、間違っていると考えられることです。再作成をドロップすると、これがクリアされます。
sps WITH RECOMPILEオプションを呼び出すことを考えていますが、これはノーノーですか?または許容できる方法