c# - Entity Framework 4 与 Entity Framework 3.5 的性能如何?

标签 c# linq performance entity-framework linq-to-entities

我的页面上有一个查询,使用 EF 3.5 执行至少需要半秒。当我使用存储过程时,速度明显更快。这是一个非常复杂的查询。即将推出的 EF 4.0 是否会有任何性能改进? EF 4.0 的性能真的超过 3.5 吗?

最佳答案

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

  • Entity Framework 4.0 has new features ,仅对象跟踪的改进就可能意味着巨大的胜利,因为您不需要自己进行手动工作……无论如何,至少开发速度更快。
  • 如果它之前根本不起作用,则使用 POCO 轻量级对象support也可能意味着在处理大量对象时转移的内存要少得多。无论从数据库中获取时填充额外属性的成本有多小,实例化和跟踪它们都会产生成本(加载时间和内存消耗)。

在您的特定情况下,除了非常复杂或大量查询之外,半秒是时间...您是否查看过在数据库中花费了多少时间以及如何.Net 拥有数据后会花费多少时间?如果您将大部分时间花在 SQL 之外,那么是的,Net 4.0 中反射的基本改进应该会为您提供一些速度改进......但是,如果您将所有时间都花在 SQL 上,那将无济于事根本。您的大部分性能问题可能是生成的 SQL 的索引,而不是 Entity Framework hydration 性能。

我会听从 Kane 的评论,看看它为您的查询生成的 SQL,您是否可以发布这个和 快速的存储过程,这样我们也许可以找到问题所在?

关于c# - Entity Framework 4 与 Entity Framework 3.5 的性能如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2075311/

相关文章:

c# - 给定一个 VS 解决方案,如何将它实现的 Silverlight 控件添加到我的项目中?

c# - 创建一个列表,其中元素计数与另一个列表相关

iphone - 在 OpenGL ES 中,绘制一个大对象还是绘制多个小对象更快?

c# - 如何使用 LINQ 组合 IEnumerable(Of IEnumerable)?

linq - 当字段需要首先解析时,如何在 linq 查询中进行过滤?

MySQL排序结果需要很长时间

c - Rcpp 中单个 "for"循环的意外性能

c# - stub 模拟 `ISession` 对象时抛出异常

c# - 以初始化 List<T> 的方式初始化 ObservableCollection<T> 的长度

c# - 在有机图中查找循环