Networking C#.NET核心EF或ADO.NET查询只需几分钟,SSMS只需30秒,为什么?

Networking C#.NET核心EF或ADO.NET查询只需几分钟,SSMS只需30秒,为什么?,networking,ado.net,entity-framework-core,ssms,database-performance,Networking,Ado.net,Entity Framework Core,Ssms,Database Performance,因此,是的,我目前正忙于一个简单的代码,我的应用程序应该能很快完成,考虑到同样的查询在SSM中运行大约34秒,使用大约90mbps: 但是,看看EF在运行相同查询时做了什么: 即使不使用ADO.NET,它也能像SSMS一样快速运行。有什么好处?我还没有尝试使用.NET Framework。目前正在使用.NET Core 3.1。这是虫子吗 欢迎任何指点,提前谢谢 对于那些遇到与我相同问题的人:问题是因为我(正确地)使用了MultipleActiveResultSets=true。事实证明,我

因此,是的,我目前正忙于一个简单的代码,我的应用程序应该能很快完成,考虑到同样的查询在SSM中运行大约34秒,使用大约90mbps:

但是,看看EF在运行相同查询时做了什么:

即使不使用ADO.NET,它也能像SSMS一样快速运行。有什么好处?我还没有尝试使用.NET Framework。目前正在使用.NET Core 3.1。这是虫子吗


欢迎任何指点,提前谢谢

对于那些遇到与我相同问题的人:问题是因为我(正确地)使用了
MultipleActiveResultSets=true
。事实证明,我必须为这段特定的代码禁用它,然后才能继续使用它。感谢@Reza on的建议:)

可能重复的@Larnu是和否。问题无关,但Reza的建议有效。该问题中的帖子讨论了存储过程、查询计划等。这是一个简单的查询,所以所有其他解决方案都不适用,所以不,我不认为它是重复的,但它是相关的。“与查询计划有关的内容”你是说SP没有查询计划吗?你错了。SQL Server缓存所有查询的查询计划,不仅仅是SP。我知道SP确实有查询计划,也有查询,但SP保存在数据库中,查询可能会被缓存。我可能错了,是的,但老实说,这个解决方案花了我大约一个小时左右的时间才找到,这就是为什么我问这个问题,然后一直在谷歌上搜索,只是想尝试一些我认为不相关的东西(考虑到MARS通常用于允许同时执行更多查询,但由于我只运行一个查询,逻辑告诉我它将使用所有带宽,不是吗?)它工作了,所以我也分享了我的解决方案,我仍然不认为它是重复的:/你使用参数化查询的原因之一是,查询计划可以被重用,SP或不,它们都会经历相同的过程。