私はまともなトラフィック(1日あたり約100,000ページビュー)でサイトを運営していますが、SQLServerのタイムアウトエラーのために散発的にサイトがひざまずきました。
SQL Profilerを実行すると、次のように1秒間に数百回呼び出されるコマンドが表示されます。
...
exec dbo.TempGetStateItemExclusive3 @id=N'ilooyuja4bnzodienj3idpni4ed2081b',...
...
SQLServerを使用してASP.NETセッションの状態を保存します。上記は、特定のセッションのセッション状態を取得するために呼び出されるストアドプロシージャです。同じ2つまたは3つのセッションを何度も要求して、ループしているようです。
この正確な状況に対処しているように見える有望なホットフィックスを見つけましたが、それは私たちにとって問題を解決していないようです。(この修正プログラムは、直接インストールできるようには見えないため、最新の.NETサービスパックに含まれていると思います)。そのレジストリキーを手動で追加しましたが、上記のようにストアドプロシージャの呼び出しがループしているのがわかります(500ミリ秒ごとよりもはるかに頻繁に同じセッションを要求します)
これを開発マシンで再現することはできませんでした。同じセッションIDに対して2つの要求が行われると、正しくブロックされているように見え、最初のページがセッションを解放するまでSQLをヒットしようとします。
何か案は?前もって感謝します!!!