繁体   English   中英

改善EF Linq查询性能

[英]Improve EF Linq query performance

我需要在连接其他较小表的大表(1m记录)上执行Linq查询的问题。 运行查询所花费的时间太长,有时会以Execution Timeout Expired结束。 我不确定如何改进查询以减少执行时间。

var result =  from p in db.population
              join e in db.engineers on p.id equals e.personId into ps
              from e in ps.DefaultIfEmpty()
              where (e == null || e.activity == "student")
              select p.name;

var final result = result.Take(100).ToList();

基本上,我想从db.population中获得不是工程师的前100名人员,但不包括工程师学生。

我不确定查询是否可以以更好的方式编写以提高性能?

加入之前尝试做

var result =  from p in db.population
              join e in db.engineers.WHERE( c=> c.activity == "student")
              on p.id equals e.personId into ps
              from e in ps.DefaultIfEmpty()
              where (e == null)
              select p.name;

var final result = result.Take(100).ToList();

要么

join e in db.engineers.WHERE( c=> c.activity == "student").Take(100) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM