EntityFramework包括vs join性能

Nul*_*nce 3 .net entity entity-framework join foreign-key-relationship

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

我已经读过,如果你的entites之间有外来关系,那么最好使用include over join.

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

我正在取回的记录数量是否会影响join和include之间的性能?

Max*_*xSC 6

我强烈建议你做一些分析.

有时候,热切的loading(.Include)是好的,有时候不是;-)只需查看一下在探查器中生成的T-SQL,你就会明白为什么!看看执行计划.

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

请记住,有时甚至可以更好地对相关数据执行简单快速的单独查询(无需延迟加载).查询可能更有效,让我们说Customers,然后Orders单独查询,让EF自动加入它们.

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