На нашем веб-сайте ASP.Net у нас был тайм-аут запросов. AppDynamics показывает, что вызовы процедур SQL возвращаются в считанные секунды, но мы тратим 100 + секунд на SNIReadSyncOverAsync.
Кто-нибудь знает, что делает этот метод/и почему он забирает столько времени? Мы не используем EF, на который ссылаемся в каждом вопросе/сообщении, которое я смог найти.
Заранее спасибо
Обновление
Это было какое-то время, и пока мы не пришли к решению о том, почему все время проводилось в SNIReadSyncOverAsync, у меня есть несколько мыслей.
Я думаю, что в этом случае возможно, что определенная версия AppDynamics сообщала время, затраченное на вызовы SQL, но у меня нет реальных данных, чтобы поддержать это, просто мое предположение из того, что я наблюдал. В конечном итоге мы перестали видеть, что время, проведенное в SNIReadSyncOverAsync, перешло к самим запросам времени.
Это все еще не так много, потому что одни и те же запросы будут запускаться мгновенно в SSMS в одной базе данных.
Окончательный ответ оказался связанным с ARITHABORT, заставляя наше приложение и SSMS использовать два разных плана выполнения (см. https://dba.stackexchange.com/a/9841), объясняя, почему мы не смогли воспроизводите таймауты с помощью SSMS.
Как только мы решили это, мы смогли идентифицировать несколько частей процедуры, которые нуждались в настройке, и мы не сталкивались с необъяснимыми таймаутами или SNIReadSyncOverAsync с тех пор.