performance - Ado.net 性能 :What does SNIReadSync do?

标签 performance ado.net

我们有一个查询在 Sql Server Management Studio 中运行需要 2 秒,但在客户端屏幕上显示需要 13 秒。 我使用 dotTrace 分析我的源代码并注意到有一个 SNIReadSync 方法(ADO.net 程序集的一部分)需要花费大量时间来完成它的工作(9 秒)。我在服务器上运行我的源代码所以我可以省略网络效果和结果是一样的。

无论我使用的是 OleDBConnection 还是 SqlConnection。

我使用的是 DataReader 还是 DataSet 并不重要。

连接池不能解决这个问题(如我的结果所示)。

我用谷歌搜索了这个问题,但找不到这个方法实际在做什么以及我们如何改进这个问题的答案。

这是我在 StakOverFlow 上发现的也没有帮助的内容: https://stackoverflow.com/questions/1610874/snireadsync-executing-between-120-500-ms-for-a-simple-query-what-do-i-look-for

最佳答案

暂时忽略 SNIReadSync(我认为这可能是转移注意力)。

您描述的症状听起来像是缓存查询计划不正确。

请更新您的统计信息(或重建索引)并查看它是否仍然发生。

关于performance - Ado.net 性能 :What does SNIReadSync do?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2354346/

相关文章:

hashtable - 在哈希表和排序列表中查找项目哪个更快?

.net - 存储过程级别的 SQL 事务和 SqlConnection 级别的 SQL 事务有什么区别?

sql-server - 如何从 Visual Basic.Net 调用表值函数以及如何存储结果

c# - 将数据库转换/转换为 C# 的数据集

r - 从 FFT 中有效提取信号频率

C# Task.Run 减慢了我的 wpf 程序

c# - (C#) 提高自定义getBetweenAll的速度

performance - MongoDB:按名称未知的子文档排序

database - 使用 DB2 .NET 数据提供程序的异步过程调用

c# - 传递大型表值参数时超时