SPROC 在 .NET 中速度较慢,但​​在 SSMS 中快 5 倍

SPROC Slow from .NET but 5 times faster from SSMS

我已经关注了类似问题的答案,包括设置 ARITHABORTH ON/OFF,使用 DBCC DROPCLEANBUFFERS 和 DBCC FREEPROCCACHE 清除缓冲区。还尝试将参数转换为局部变量。但仍然存在性能问题。

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

有意思的是,数据读取也是不一样的。 "Binary" 列有一些.NET 客户端的数据,但没有SSMS 的数据,但我不是专家,不知道为什么。

如有任何帮助,我们将不胜感激。

技术:SQL SERVER 2016 标准

底层 table 包含大约 300 万行 程序取入的参数通常都非常相似

再次感谢您的帮助。

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