함수는 다음의 작업을 하고 있었다
var result = mainTable
.Include(tableA)
.Include(tableB)
.Include(tableC)
.GroupJoin(~~~code with groupJoining with tableD)
.GroupJoin(~~~code with groupJoining with tableE)
.Where(~~conditions).ToList();
result.Select(ToMyModel).ToList();
var includeResult = mainTable
.Include(tableA)
.Include(tableB)
.Include(tableC).ToList();
var joinResult = includeResult
.GroupJoin(~~~code with groupJoining with tableD)
.GroupJoin(~~~code with groupJoining with tableE)
.Where(~~conditions).ToList();
var filteredResult = mainTable
.Where(~~conditions);
var includeResult = filteredResult
.Include(tableA)
.Include(tableB)
.Include(tableC).ToList();
var joinResult = includeResult
.GroupJoin(~~~code with groupJoining with tableD)
.GroupJoin(~~~code with groupJoining with tableE)
.Where(~~conditions).ToList();
❗ 7초가 걸렸던 쿼리가 1초 미만을 줄어들었다
참고자료
https://gist.github.com/hellerbarde/2843375
🔼 최적화가 필요한 부분은 대부분 프로그램내부가 아닌 db로부터 데이터 가져오는 부분이다