我们有一个在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
答案 0 :(得分:2)
暂时忽略SNIReadSync
(我认为这可能是一个红色的鲱鱼)。
您描述的症状听起来像是错误缓存的查询计划。
请更新您的统计信息(或重建索引),看看它是否仍然存在。