实体框架4与实体框架3.5的表现如何?

Luk*_*101 7 c# linq performance linq-to-entities entity-framework

我的页面上有一个查询,使用EF 3.5执行至少需要半秒钟.当我使用存储过程时,速度明显加快.这是一个非常复杂的查询.即将到来的EF 4.0会有任何性能改进吗?EF 4.0真的击败了3.5性能吗?

Nic*_*ver 3

简短的回答是现在下结论还为时过早。.Net 人员几乎完全专注于性能,直到 4 月 12 日的发布必须最终确定和本地化。另外,更快是什么意思?更快可以通过多种方式来看待,例如:

  • 实体框架 4.0 具有新功能,仅对象跟踪改进就可能意味着巨大的胜利,因为您不需要自己进行手动工作......无论如何,至少开发速度更快。
  • 如果以前根本不起作用,那么具有POCO 支持的轻量对象可能意味着在处理大量对象时移动的内存也会少得多。无论从数据库获取时填充额外属性的成本有多小,实例化和跟踪它们都会产生成本(加载时间和内存消耗)。

在您的具体情况下,除了非常复杂或大容量的查询之外,半秒对于任何事情来说都是很长的时间...您是否查看过在数据库中花费了多少时间以及.Net 拥有数据后花费了多少时间?如果您将大部分时间花在 SQL 之外,那么是的,Net 4.0 中反射的基本改进应该会为您提供一些速度改进...但是,如果您将所有时间都花在 SQL 上,那么它不会有太大帮助根本不。大部分性能问题可能是生成的 SQL 的索引,而不是实体框架水合性能。

我会按照 Kane 的评论,查看它为您的查询生成的 SQL,您是否可以快速发布此内容和存储过程,以便我们可以找到问题所在?