2012-11-29 3 views
0

LINQ 쿼리가 있습니다. 쿼리를 실행할 때 작업을 수행하는 데 많은 시간이 걸립니다. 좋은 수행을 위해 쿼리를 어떻게 수정할 수 있습니까? 여기에 LINQ 쿼리가 있습니다.좋은 LINQ 쿼리를 작성하는 방법은 무엇입니까?

쿼리

var model = (from items in Db.Items 
         where items.ItemNo == DD.ItemNumber 
         select new ViewModel() 
         { 
          INo = items.ItemNo, 
          BTags = (from asd in Db.BibContents where asd.BibId == items.BibId && asd.TagNo == "245" && asd.Sfld == "a" select asd.Value).FirstOrDefault(), 
          Sid = (from stat in Db.ItemStatus1 where stat.Id == items.StatusId select stat.Description).FirstOrDefault(), 
          Option = DD.Option 
         }).ToList(); 
+1

이러한 테이블에 인덱스를 만듭니다. –

+0

엔티티 모델에 대한 자세한 정보를 제공해 주실 수 있습니까? 서브 쿼리가 아닌 탐색 속성을 사용하는 것이 이상적입니다. –

+0

Entity Framework를 사용하고 있습니다. – Dhev

답변

3

당신은 SQL 프로파일 러와 쿼리 분석기에서 쿼리를 분석해야합니다. 문제는 아마도 테이블에 대한 인덱스 일 것입니다.

+1

+1. Profiler에서 생성 된 SQL Entity Framework의 분석 - 때로는 실행하기로 결정한 쿼리에 절대적 충격을줍니다! –

0

우선 쿼리가 데이터베이스 개체와 함께 작동하지만 모든 작업을 SQL로 수행하고 결과 만 LINQ로 가져 오는 것이 좋습니다.

그러면 성능이 향상 될 것입니다.

관련 문제