2010-12-02 5 views
3

응용 프로그램의 첫 번째 쿼리가 실행될 때 엔티티 프레임 워크에 성능 문제가 있습니다. 약 20 초 걸렸습니다. SQL Server 프로파일 러가있는 SQL Server에서 쿼리의 실제 실행 시간을 확인하는 데 몇 밀리 초가 걸렸습니다. 첫 번째 쿼리는 다른 사람들에게 잘 작동합니다.엔터티 프레임 워크 성능 문제

쿼리는 하나의 행이 삽입 된 테이블의 매우 단순한 선택입니다 .DB는 약 200 개의 테이블로 구성되어 있지만 인덱스가없는 것은 아닙니다. 뷰 ... 아무 것도없는 다른 사람들도 첫 번째 질의하지만 해결책을 찾지 못했습니다. 무슨 일이 벌어지고 있는지에 대한 아이디어가 있습니까?

그럼이 쿼리

 DBEntities en = new DBEntities(); 

     var person= (from p in en.People 
          select p).First(); 
     this.txt1.Text = person.name; 
+0

20 초가 걸리는 검색어가 맞습니까? 당신은/쿼리 결과와 함께 뭐하고 있니? 쿼리를 볼 수 있다면 도움이 될 수 있습니다. –

답변

1

SQL 쿼리 밀리 초를 소요하지만, 어쩌면 첫 번째 실행에 약간의 시간을내어 EF 내에서 SQL의 생성. 특히 복잡한 쿼리/모델 인 경우 성능 개선을 위해 미리 생성 할 수있는 방법을 설명하는이 기사를 살펴보십시오. Pre-Generate Views

0

데이터베이스의 쿼리가 밀리 초 (300 미만) 만 소요되는 경우 문제는 응용 프로그램에 있습니다. 트랜잭션에서 이벤트가 발생할 때를 알려주는 코드 및 로그 메시지를 계측해야합니다. 네트워크 대기 시간을 배제 할 수 있도록 데이터베이스 호출 전후에 기록해야합니다. 첫 번째 쿼리 후에 결과가 캐시되므로 모든 것이 빠르다. 문제는 항상 캐시 설정 또는 페이로드 전송 여부입니다.

0

코드가 성능을 저하시키는 위치를 찾기위한 두 가지 옵션 : SQL Profiler과 우수 EFProf.