【发布时间】:2021-02-09 12:52:56
【问题描述】:
我有一个这样的 linq 查询:
from a in context.table_A
join b in
(from temp in context.table_B
where idlist.Contains(temp.id)
select temp)
on a.seq_id equals b.seq_id into c
where
idlist.Contains(a.id)
select new MyObject
{
...
}).ToList();
- idlist 是列表
- 我遇到的问题是 idlist 的值太多(几十万到几百万条记录)。它适用于很少的记录,但是当记录太多时,包含函数会出错。
错误日志是
由于内部资源不足,无法创建查询计划 查询处理器。这是一个罕见的事件,只发生在非常 复杂查询或引用大量数据的查询 表或分区。让查询变得简单。
我想提高这部分的表现。有什么想法吗?
【问题讨论】:
-
尝试批量检查。
-
idlist的来源是什么? -
idlist 是这个函数的参数
-
您能否反转查询并加入到 IdList 而不是从中加入?或者,重组您的数据,以便可以在一个查询中查找您的引用。
标签: c# asp.net sql-server linq