【问题标题】:Linq to entity performance issues with large set of data大型数据集的 Linq to 实体性能问题
【发布时间】:2012-05-07 17:57:54
【问题描述】:

我目前正在使用 EF4,在我的一个场景中,我正在使用连接并想要检索数据,但由于结果数据太多,EF4 甚至无法生成查询计划。作为一种解决方法,我尝试了将数据加载到简单的通用列表中(使用从两个表中选择所有数据),然后尝试加入这两个列表,但我仍然遇到内存不足异常,因为一个表包含大约 100k 条记录,第二个表包含 50k 条记录我想要加入他们的查询...但仍然没有使用 EF...请建议我解决此问题...

【问题讨论】:

  • 使用标准测量。大多数人不知道什么是缺乏。
  • 你有没有做任何事情来限制结果集?
  • 对不起,如果我造成了任何混乱......但我的一张表包含 100000 条,第二张表有大约 50000 条记录......
  • @Aducci:目前没有,如果想使用 linq to entityframework 将这两个大表连接起来,我该怎么做?

标签: asp.net entity-framework-4 linq-to-entities


【解决方案1】:

我想不出您会需要一个包含 100k+ 记录的结果集的任何场景。这可能不是您想要的答案,但提高性能的最佳方法是减少您正在处理的记录数量。

【讨论】:

  • 这是我正在苦苦挣扎的场景......我如何限制我的表记录参与加入并获得我没有得到的预期结果......我知道问题是由于涉及到大量数据是 EF 无法处理的......但我正在询问关于 linq to entityframework 中这个问题的任何解决方法......
  • 我会更新您的问题并解释您要如何处理这些记录。你用它们做什么?
  • 我只是想将这两个表连接起来,想得到结果,但问题是连接所涉及的数据量非常大..
  • 您已经明确表示您只需要数据,但为什么需要所有数据?你想用它做什么?就像@JamesJohnson 所说,我无法想象你为什么需要 10 万条记录。编辑:您是否尝试加入 2 个表以将组合数据放入某个表或 xml 文件或其他任何内容中?
【解决方案2】:

我们所做的是我们编写了自定义 SQL 并使用 Context.Database.SqlQuery(sql, params) 执行它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-29
    • 2011-11-09
    • 2011-03-10
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 2016-04-17
    相关资源
    最近更新 更多