簡體   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