asp.net – 什么是SNIReadSyncOverAsync,为什么需要很长时间才能
在我们的ASP.Net网站上,我们有一些请求超时。 AppDynamics显示SQL过程调用在几秒钟内返回,但是我们在SNIReadSyncOverAsync中花费了100秒。
有谁知道这个方法是/做什么,为什么要花这么多时间?我们没有使用在我能够找到的每个问题/帖子中引用的EF。 提前致谢 更新 这是一段时间,虽然我们从来没有提到过为什么所有的时间都花在SNIReadSyncOverAsync上,但我有一些想法。 我认为在这种情况下,这可能是AppDynamics的特定版本报告了SQL调用所花费的时间的方式,但是我没有真正的数据来支持,只是我从我观察到的猜测。我们最终停止看到报告的时间在SNIReadSyncOverAsync中花费的时间,并将其转移到查询本身超时。 因为相同的查询可以在同一个数据库上的SSMS中立即运行,所以仍然没有太大的影响。 最终的答案最终与ARITHABORT有关,导致我们的应用程序和SSMS使用两种不同的执行计划(见https://dba.stackexchange.com/a/9841),解释为什么我们无法使用SSMS再现超时。 一旦我们解决了这个问题,我们就可以确定需要进行调整的程序的几个部分,而且我们还没有遇到无法解释的超时或SNIReadSyncOverAsync。 解决方法
不确定您是否已经解决了这个问题,但是:SNI是SQL Server网络接口,并且大多数ADO.NET完全调用堆栈中存在所提到的方法,它们等待SQL Server的数据。这是不管高级别的实现是EF,原始的ADO.NET还是其他的。
我不知道AppDynamics使用哪个度量或信号来捕获存储过程执行的完成,但如果您的存储过程完成相对较快,但是将查询结果从服务器传输到客户端,则可能会看到此类行为一会儿。 在不了解更多关于您的基础设施的情况下,很难进一步帮助。如果问题仍然存在,建议您在SQL Server Management Studio中运行相同的查询,并将SET STATISTICS TIME ON和“包括客户端统计信息”切换到开启状态。也许这些数字会让您了解数据传输是否真的是问题。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – Restful MVC Web Api继承
- asp.net – 为什么Global.asax中的HttpContext.Current.Ses
- asp.net – 输出缓存动态生成的CSS
- asp.net – Sys.WebForms.PageRequestManagerServerErrorEx
- ASP.Net的Web TWAIN扫描解决方案?
- ASP.NET中的会话修复
- entity-framework – 未找到可执行文件匹配命令“dotnet-ef
- asp.net – 在日期字段中插入空值?
- asp.net – 得墨忒耳定律和OOP混淆
- asp.net-mvc – 如何使用ASP.NET MVC创建仪表板用户界面?
- asp.net-core – 如何获取ASP.NET Core中的中间件
- asp.net – 使用Visual Studio 2017在.NET Core解
- asp.net-mvc – 确定哪个控制器和操作在ASP.NET
- asp.net-mvc – MVC Kendo Grid超链接专栏
- asp.net – 在gridview中显示2位小数位数
- asp.net – HTML敏捷包删除break标签关闭
- asp.net-mvc-3 – Webgrid MVC 3条件行样式
- asp.net – 如何验证用户选择至少一个复选框?
- 在ASP.NET中,如何让浏览器将字符串内容下载到文件
- ASP.NET MVC 3自定义身份验证/授权