在我们的ASP.Net网站上,我们有一些请求超时.AppDynamics显示SQL过程调用在几秒钟内返回,但我们在SNIReadSyncOverAsync中花费了100多秒.
有谁知道这个方法是什么/做什么以及为什么要花那么多时间?我们没有使用在我能够找到的每个问题/帖子中引用的EF.
提前致谢
更新
已经有一段时间了,虽然我们从来没有解决为什么所有的时间都花在SNIReadSyncOverAsync上,但我有一些想法.
我认为在这种情况下,它可能是特定版本的AppDynamics报告SQL调用所用时间的方式,但我没有真正的数据来支持这一点,只是我从我观察到的猜测.我们最终停止看到报告的时间在SNIReadSyncOverAsync中花费,并且它转移到查询本身超时.
由于相同的查询将在同一数据库中的SSMS中立即运行,因此仍然没有做很多事情.
最终答案最终与ARITHABORT相关,导致我们的应用程序和SSMS使用两个不同的执行计划(请参阅https://dba.stackexchange.com/a/9841),解释了为什么我们无法使用SSMS重现超时.
一旦我们解决了这个问题,我们就能够确定需要调整的过程的一些部分,并且我们没有遇到无法解释的超时或SNIReadSyncOverAsync.
我一直在考虑一些分支策略(每个功能创建分支,也许每个开发人员,因为我们是一个小组),并且想知道是否有人遇到过任何问题.创建分支会占用多少空间吗?