我已经按照类似问题的答案,包括设置ARITHABORTH ON / OFF,使用DBCC DROPCLEANBUFFERS和DBCC FREEPROCCACHE清除缓冲区。还尝试将参数转换为局部变量。但仍然存在性能问题。
如截图所示,SSMS中的相同过程大约需要625毫秒,但是从.NET客户端开始大约需要3.5秒。
有趣的是数据读取也不同。 " Binary" column有一些.NET客户端的数据,但不适用于SSMS,但我不是专家,不知道为什么。
非常感谢任何帮助。
技术:SQL SERVER 2016标准
基础表包含大约300万行 该程序采用的参数通常非常相似。
再次感谢您的帮助。
答案 0 :(得分:0)
因为我使用的是实体框架,所以我的应用程序中的连接字符串具有MultipleActiveResultSets = True。当我从连接字符串中删除它时,查询在.NET和SSMS中具有相同的性能。