次の SQL クエリを linq で複製しようとしています。SQL Server では、実行に数分の 1 秒かかります。
select g.reference, count(*)
from isis.dbo.[group] as g inner join
isis.dbo.enrolment as e on g.groupid = e.groupid inner join
isis.dbo.student as s on e.studentid = s.studentid inner join
isis.dbo.progression as p on s.studentid = p.studentid
where p.academicyear = '12/13' and g.istutorgroup = 1
group by reference
私の MVC アプリケーションでは、「TutorGroups」のリストをビューに渡しています。ビュー内の各家庭教師グループについて、それらに関するさまざまな情報を表示する必要があります。1 つの項目は、彼らが受けた「進行」インタビューの数です。
いくつかの方法を試しましたが、どちらも MVC アプリケーションで実行するのに 30 秒以上かかります。
<%TTMrequired = tg.Enrolments
.SelectMany(e => e.Student.Progressions
.Where(p => p.TTMChecked == false &&
p.TTMInterview == true &&
p.AcademicYear == year))
.Count(); %>
と
<%TTMrequired = tg.Enrolments
.Where(e => e.Student.Progressions
.Any(p => p.TTMChecked == false &&
p.TTMInterview == true &&
p.AcademicYear == year))
.Count(); %>
これをスピードアップする方法について誰か提案がありますか? 問題は、私が愚かな方法でやろうとしていることにあると思います-通常はそうです!