列表和Linq到Sql性能问题

Pan*_*hra 9 mysql sql linq-to-entities list linq-to-sql

我有一个表(我的Sql)有2百万条记录和一个列表有100条记录.我有列表除了lamda表达式,用于查找List中但不在表中的所有Url.

现在的问题是它需要花费大约5分钟的时间.我在同一台服务器上使用强大的VPS和代码和数据库.

请建议我所有可能的方法来增加linq到sql和linq到实体的性能.

我的代码是'回归

Urls.Except(DbContext.postedurllists.Select(crawl => crawl.PostedUrl).ToList()).ToList();`
Run Code Online (Sandbox Code Playgroud)

其中网址包含100个网址的位置和posturllists是一个包含2百万条记录的表格.谢谢

Jon*_*eet 3

您当前正在从数据库中提取所有URL。这不是一个好主意。相反,我建议通过有效地将列表传递到数据库中来从数据库中提取交集,并根据结果执行例外操作:Urls

var commonUrls = DbContext.postedurllists
                          .Select(c => c.PostedUrl)
                          .Where(url => Urls.Contains(url))
                          .ToList();

var separateUrls = Urls.Except(commonUrls);
Run Code Online (Sandbox Code Playgroud)