通过从数据库调用中删除对象映射,大大提高了速度

本文关键字:速度 映射 对象 数据库 调用 删除 | 更新日期: 2023-09-27 18:27:47

您可以在以下位置查看我的代码:https://gist.github.com/anonymous/da0d2b99e5adf7db5e08

我正在ASP.NET MVC项目中使用带有C#的Entity Framework 6/LINQ。数据库是MySQL。

当我将对象映射从数据库调用中分离出来时,它的速度提高了2倍以上(1000次迭代为4000ms,而1000次迭代则为1600ms)。我尝试过切换顺序和预缓存数据库调用(我不确定它们是否缓存,但我尝试过),结果没有变化。对象列表(returnList1和returnList2)显示测试用例输出似乎是相同的。

A) 我把测试用例搞砸了吗?或者这些结果准确吗?B) 如果我没有搞砸我的测试用例,为什么测试#1不编译成类似于测试#2的代码呢?测试1比测试2有什么好处吗?

通过从数据库调用中删除对象映射,大大提高了速度

我之所以回答我的问题,是因为我也在其他地方问过这个问题,并得到了有用的答案。正如您在msdn上看到的,这可能是由于冷查询执行与热查询执行造成的。

此外,建议使用插件来观察DB查询的评论也很有趣,然而,简单地从Linq-to-Entities查询中删除toList就可以显示相关的原始mysql查询。