Asp.net 为什么DbContext.SaveChanges在调试模式下慢10倍
有人能解释一下吗Asp.net 为什么DbContext.SaveChanges在调试模式下慢10倍,asp.net,performance,entity-framework-5,dbcontext,intellitrace,Asp.net,Performance,Entity Framework 5,Dbcontext,Intellitrace,有人能解释一下吗 为什么DbContext.SaveChanges在调试模式下的运行速度比生产模式慢10倍 我有没有办法加快速度 在调试模式下,我的网页需要116秒才能加载,而在没有调试的情况下启动项目则需要15秒 我已经设置了跟踪语句,并确定在调试模式下,DbContext.SaveChanges方法花费了116秒中的约100秒 在没有调试的情况下运行项目在同一节中只花费7秒 如果你想了解更多信息,请在评论中告诉我 项目设置: ASP.NET网页 VS2012 SQLServer2012 实
- ASP.NET网页
- VS2012
- SQLServer2012
- 实体框架5.0
- 通过SaveChanges方法进行的sql查询的累积数量为20000
- 生产连接字符串:数据源=PC-DEV;初始目录=aspnet-2013-06-04;综合安全=真实;MultipleActiveResultSets=True;应用程序名称=EntityFrameworkMUE
- 调试连接字符串:数据源=PC-DEV;初始目录=aspnet-2013-06-04;综合安全=真实;MultipleActiveResultSets=True;应用程序名称=EntityFrameworkMUE
- 我还体验了与支持数据库LocalDB相同的相对性能
如何如评论中所述,给定的答案仅适用于Visual Studio Ultimate 截至VS2019(可能还有大多数其他版本),解决方案是通过: 工具>选项>调试>常规 然后取消选中调试时启用诊断工具 当然,您将丢失所有诊断位和BAT,但如果您所追求的是实体框架,那么它将大大加快实体框架的速度 更新:
上述解决方案对我不再有效。我发现我需要在调试时从同一个选项列表中进一步取消选中“显示运行时间PerfTip”。调试时,您的连接字符串是什么样子?@RealityDysfunction在生产和调试模式下用字符串更新了问题。您是否在VS中选中了“仅启用我的代码”?在调试菜单->选项和设置->常规->仅启用我的代码下。也许你没有检查它,VS正在尝试调试EF?@Tombala,即使检查了它,性能仍然很差(这仅适用于Visual Studio Ultimate。社区版中绝对不适用!