4

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

我已经读过,如果您的实体之间有外来关系,最好使用包含而不是连接。

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

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

4

1 回答 1

7

我强烈建议你做一些分析

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

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

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

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

于 2013-06-07T08:47:45.710 回答