我们有一个查询在 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 https://stackoverflow.com/questions/1610874/snireadsync-executing-between-120-500-ms-for-a-simple-query-what-do-i-look-for
忽略SNIReadSync
一会儿(我认为这可能是转移注意力)。
您描述的症状听起来像是错误缓存的查询计划。
请更新您的统计信息(或重建索引)并查看它是否仍然发生。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)