【问题标题】:EntityFramework include vs join performanceEntityFramework 包括 vs 连接性能
【发布时间】:2013-06-03 08:45:07
【问题描述】:

我想知道,在使用实体框架时,哪一个会产生更好的性能?

我了解到,如果您的实体之间存在外部关系,则最好使用包含而不是连接。

如果我只是检索来自 2 个不同实体(具有外键关系)的记录的 1 行,那么如果我使用 include over join 会有什么不同吗?

我取回的记录数量会影响连接和包含之间的性能吗?

【问题讨论】:

    标签: .net entity-framework join entity foreign-key-relationship


    【解决方案1】:

    我强烈建议你做一些profiling

    有时急切加载 (.Include) 很好,有时则不然;-) 只需查看分析器中生成的 T-SQL,您就会知道原因!看看执行计划。

    尝试.Include查询中的一些一对多关系并查看将检索的数据量:数据将乘以所有包含表中的行数。大量重复数据可能会通过线路拉取,从而导致高带宽消耗和性能问题。

    请记住,有时对相关数据执行简单快速的单独查询会更好(没有延迟加载)。查询可能更有效,比如说Customers,然后分别查询Orders,让EF自动加入它们。

    根据我自己的经验,我拥有一支强大的 DBA 团队来查看 EF 生成的所有查询,我建议开发人员不要再使用 .Include ;-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-11
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多