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和“包括客户端统计信息”切换到开启状态。也许这些数字会让您了解数据传输是否真的是问题。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 让OData和NHibernate结合进行动态查询
- asp.net – 是否有可能欺骗或重用VIEWSTATE或检测它是否受到
- asp.net – 联合身份验证和“加密操作期间发生错误”
- asp.net – 在VS 2008嵌套母版页中包含对JavaScript的相对引
- asp.net菜单控件在safari中无法正确呈现
- asp.net-mvc – Knockout,CKEditorSingle Page App
- asp.net-mvc – ASP.NET MVC自定义路由搜索
- asp.net-mvc – 请求验证 – ASP.NET MVC 2
- .net – 如何动态清除用户控件中的所有控件?
- asp.net-web-api – 如何在HttpReponseMessage上设置响应co
- 什么是%=或%:在ASP.NET中调用?
- asp.net-mvc-3 – 如何模拟查询字符串
- Winforms,ASP.NET,WPF的语法突出显示文本框
- asp.net-mvc – 在web.config文件中创建自定义变
- asp.net – ReportViewer超时,尽管超时设置
- asp.net-web-api – ASP.NET Web API:如何在Web
- asp.net-mvc – 在IIS6上使用jqGrid和ASP.NET MV
- asp.net – 如何在IIS Express下启用区分大小写?
- asp.net – 验证嵌套的ViewModels
- asp.net-mvc – 如何在MVC WebGrid中显示行号
