-1

快5倍我按照答案已经类似的问题,包括设置ARITHABORTH ON/OFF,清理出使用DBCC DROPCLEANBUFFERS和DBCC FREEPROCCACHE缓冲慢。还尝试将参数转换为局部变量。但仍然有性能问题。存储过程从.NET而是从SSMS

enter image description here

如屏幕截图所示,从SSMS相同的过程需要大约625毫秒,但是从.NET客户端,需要大约3.5秒。

有趣的是,数据读取也不同。 “二进制”列为.NET客户端提供了一些数据,但不包括SSMS,但我不是专家,也不知道为什么。

任何帮助将不胜感激。

技术:SQL SERVER 2016标准

基础表中包含大约3万行 通过规定程序采取中的参数通常是非常相似的。

再次感谢您的帮助。

+0

是U确保DOTNET客户端连接到您在使用SSMS捕获 – GuidoG

+1

使用剖析SQL命令相同的DB。然后将它与您在SSMS中测试的命令进行比较。 – GuidoG

+0

@GuidoG是的,我当然使用相同的DB。捕获的配置文件跟踪已附加。我也证实,这两个SP调用使用相同的查询计划 –

回答

0

因为我使用的是实体框架,所以我的应用程序中的连接字符串有MultipleActiveResultSets = True。当我从连接字符串中删除它时,查询在.NET和SSMS中具有相同的性能。