ASP.Net Web サイトで、いくつかの要求がタイムアウトになりました。AppDynamics は、SQL プロシージャ コールが数秒で返されることを示していますが、SNIReadSyncOverAsync で 100 秒以上費やしています。
このメソッドが何であるか、またはその方法と、なぜそれほど時間がかかるのかを知っている人はいますか? 私が見つけたすべての質問/投稿で参照されているEFを使用していません。
前もって感謝します
アップデート
しばらくの間、なぜすべての時間が SNIReadSyncOverAsync に費やされていたのかについて解決に至りませんでしたが、いくつかの考えがあります。
この場合、AppDynamics の特定のバージョンが SQL 呼び出しに費やされた時間を報告する方法だった可能性があると思いますが、それを裏付ける実際のデータはありません。私が観察したことから推測しただけです。最終的に、SNIReadSyncOverAsync で費やされたと報告された時間が表示されなくなり、クエリ自体のタイムアウトに移行しました。
同じクエリが同じデータベースの SSMS で即座に実行されるため、これでもあまり意味がありませんでした。
最終的な答えは ARITHABORT に関連し、アプリケーションと SSMS が 2 つの異なる実行計画を使用することになり ( https://dba.stackexchange.com/a/9841を参照)、SSMS でタイムアウトを再現できなかった理由を説明しています。
これを解決すると、調整が必要な手順のいくつかの部分を特定でき、それ以来、原因不明のタイムアウトや SNIReadSyncOverAsync に遭遇することはありません。