gpt4 book ai didi

asp.net - 什么是 SNIReadSyncOverAsync?为什么需要很长时间才能完成?

转载 作者:行者123 更新时间:2023-12-01 22:13:05 37 4
gpt4 key购买 nike

在我们的 ASP.Net 网站上,我们遇到了一些请求超时的情况。 AppDynamics 显示 SQL 过程调用在几秒钟内返回,但我们在 SNIReadSyncOverAsync 中花费了 100 多秒。

有谁知道这个方法是什么/做什么以及为什么它会花费那么多时间?我们没有使用 EF,我找到的每个问题/帖子都引用了 EF。

提前致谢

更新

已经有一段时间了,虽然我们从未就为什么所有时间都花在 SNIReadSyncOverAsync 上达成解决方案,但我有一些想法。

我认为在这种情况下,可能是特定版本的 AppDynamics 报告 SQL 调用所花费的时间的方式,但我没有真实的数据来支持这一点,这只是我根据观察到的猜测。我们最终不再看到报告的 SNIReadSyncOverAsync 所花费的时间,而是转向查询本身超时。

这仍然没有多大意义,因为相同的查询会立即在 SSMS 中的同一数据库上运行。

最终的答案最终与 ARITHABORT 相关,导致我们的应用程序和 SSMS 使用两种不同的执行计划(请参阅 https://dba.stackexchange.com/a/9841 ),这解释了为什么我们无法使用 SSMS 重现超时。

解决这个问题后,我们就能够确定过程中需要调整的几个部分,并且从那以后我们就没有遇到无法解释的超时或 SNIReadSyncOverAsync 的情况。

最佳答案

不确定您是否已经解决了这个问题,但是:SNI 是 SQL Server 网络接口(interface),并且提到的方法存在于大多数等待 SQL Server 数据的 ADO.NET 完整调用堆栈中。这与更高级别的实现是 EF、原始 ADO.NET 还是其他无关。

我不确定 AppDynamics 使用哪个指标或信号来捕获存储过程执行的完成情况,但如果您的存储过程完成得相对较快,但将查询结果从服务器传输到你的客户需要一段时间。

如果不了解更多有关您的基础设施的信息,就很难提供进一步的帮助。如果问题仍然存在,我建议在 SQL Server Management studio 中运行相同的查询,并将 SET STATISTICS TIME ON 并将“包括客户端统计信息”切换为打开。也许这些数字可以让您了解数据传输是否确实是问题所在。

关于asp.net - 什么是 SNIReadSyncOverAsync?为什么需要很长时间才能完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14993309/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com