【问题标题】:When is it better to lazy load instead of eager load with EF 4.1 DbContext (+ SQL 2008 R2)?何时使用 EF 4.1 DbContext (+ SQL 2008 R2) 延迟加载而不是急切加载更好?
【发布时间】:2012-02-09 00:18:13
【问题描述】:

我知道答案是“视情况而定”。我发现在一些操作中删除急切加载实际上可以提高性能,无论是在我的 LM 还是在 AppHarbor 上(尚未在 Azure 上测试)。

到目前为止,在我尝试过的情况下,根实体并未通过其主键进行查询。主键是一个 int,但这些查询违背了 Guid 候选键来混淆 URL 中的 int pk。我在 Guid 上没有键或索引,唯一的键(fk 除外)是 int pk,它是聚集的。

在 Guid 候选键上使用非聚集索引是否会加快加载速度?

【问题讨论】:

    标签: performance entity-framework-4.1 sql-server-2008-r2 guid dbcontext


    【解决方案1】:

    我认为您需要权衡执行许多小查询与一个大查询的成本。此外,如果您需要所有相关数据并计划在收到数据后立即处理所有数据,那么延迟加载可能不是一个好主意。

    另外,看看 Julie Lermann 写的关于这个主题的这两篇文章:

    http://msdn.microsoft.com/en-us/magazine/hh205756.aspx

    http://msdn.microsoft.com/en-us/magazine/gg309181.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-30
      • 1970-01-01
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多