我想知道,在使用实体框架时,哪一个会产生更好的性能?
我已经读过,如果您的实体之间有外来关系,最好使用包含而不是连接。
如果我只是从 2 个不同的实体(具有外键关系)中检索 1 行的记录,那么如果我使用 include over join 会有所不同吗?
我取回的记录数量是否会影响连接和包含之间的性能?
我想知道,在使用实体框架时,哪一个会产生更好的性能?
我已经读过,如果您的实体之间有外来关系,最好使用包含而不是连接。
如果我只是从 2 个不同的实体(具有外键关系)中检索 1 行的记录,那么如果我使用 include over join 会有所不同吗?
我取回的记录数量是否会影响连接和包含之间的性能?
我强烈建议你做一些分析。
有时急切加载 ( .Include
) 很好,有时则不然;-) 看看分析器中生成的 T-SQL,您就会知道为什么!看看执行计划。
尝试查询中.Include
的一些一对多关系并查看将检索的数据量:数据将乘以所有包含表中的行数。许多重复的数据可能会通过线路拉出,从而导致高带宽消耗和性能问题。
请记住,有时对相关数据执行简单快速的单独查询会更好(没有延迟加载)。查询可能会更有效,比如说Customers
然后Orders
单独查询并让 EF 自动加入它们。
根据我自己的经验,拥有一个强大的 DBA 团队来查看 EF 生成的所有查询,我建议开发人员不要.Include
再使用 ;-)