2012-08-16 2 views
4

저는 웹 사이트에서 EF 4를 사용하고 있으며 매우 불안한 ​​문제를 발견했습니다. 첫 번째 실행로드 시간이 매우 느립니다. (약 20-30 초). 첫 실행 후 - 정말 빠르게 작동합니다.엔티티 프레임 워크가 처음으로로드되는 속도가 매우 느림

"첫 실행"은 아무런 활동이없는 오랜 시간 (10 분 정도) 후에 실행되는 것을 의미합니다.

트래픽이 많으면 사이트가 정상적으로 작동하고 있습니다. 느린 날이있는 경우 - 긴 교통 체증 후에 사이트를 방문한 첫 번째 사람은 매우 나쁜 경험을하게됩니다.

웹 사이트에서도 API를 제공하기 때문에 동일한 문제가 발생합니다. 그것을 처음으로 부른다면 - 그의 편이 시간 초과 될 것입니다.

내 DB는 SQL Server 2008 R2입니다.

왜 이런 생각입니까? 해결 방법?

감사합니다.

+2

알려진 동작입니다. http://stackoverflow.com/questions/10757019/entity-framework-initialization-is-slow-what-can-i-do-to-bootstrap-it-faster 두 가지 참조 : http : //stackoverflow.com/q/9261095/270591 and http://stackoverflow.com/q/11543990/270591 – Slauma

답변

3

EF 일 수 있지만 IIS 또는 조합에서 응용 프로그램 풀이 재활용 될 가능성이 있습니다.

귀하의 웹 사이트에서 느린 사용 시간이 있고, 발생하는 방문자에 대해 각 페이지를 빠르게로드하려는 경우, 과거에는 특정 간격으로 웹 사이트를 방문하도록 시간 초과 작업을 설정했습니다 (약 5 분이 나를 위해 일했다). 그리고 그것은 방문자가 따라 갔을 때 항상 갈 준비가되어 있는지 확인했다.

작업 스케줄러에 액세스 할 수 있으면 매우 쉽게 할 수 있습니다.

+0

글쎄, 작업 스케줄러 사용 :) 문제를 해결하는 것 같습니다. – Roman

+0

ORM 시스템에서 지연된 시작 문제에 대한 많은 정보가 있으므로 창의적으로 해결해야합니다. IIS 7.5 이상에서는 몇 가지 더 쉬운 해결책이 있습니다. – Roman

0

EF, DB 또는 IIS임을 확인하기 위해 좀 더 연구를 수행 할 것입니다. 나는 IIS가 @ E.J와 같은 가능성있는 범인으로 보인다고 생각한다. 브레넌은 말했다.

IIS에서 IIS 응용 프로그램 풀이 재활용되지 않았는지 확인하는 것이 정상이지만 빈도를 관리하여 최종 사용자에게 미치는 영향을 줄입니다. EF는 아마 문제는 아니지만, 앱이나 DB에서의 캐싱은 기본 SQL 문제를 숨길 수 있습니다. 쿼리를 캡처하고 최적의 실행 계획을 분석하십시오.

이 도움말을 통해 문제를 정확히 파악할 수 있습니다.

관련 문제