1

내 WPF4 데스크톱 응용 프로그램에서 ADO.NET 엔터티 데이터 모델 (edmx)을 통해 SQL Server 2008 R2에 대한 연결을 사용하고 있으며 응용 프로그램을 시작할 때주의를 기울였습니다. 처음으로 (콜드 스타트) 애플리케이션이 DB에 연결을 설정하고 (기본 연결이 없거나 테이블이 실제로 작음) 기본 LINQ- 쿼리를 수행하고 DataGrid 컨트롤에 결과를 표시 할 때까지는 너무 오래 걸립니다 (약 10 초).첫 번째 응용 프로그램 시작시 SQL Server에 너무 느린 연결

로컬 컴퓨터에 SQL Server 2008 R2가 설치되어 있으므로 네트워크로드에 문제가 없습니다.

내가 (외부 스레드) SQL 연결 구축 방법 :

public static DBEntities dbContext = new DBEntities(); 
    dbContext.Connection.Open(); 

연결 구성 :

<connectionStrings> 
     <add name="DBEntities" connectionString="metadata=res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQLEXPRESS;Initial Catalog=DB;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 

내 질문이 작은 기본 WPF 응용 프로그램에 대한 정상적인 동작 (3백킬로바이트 실행 파일을 , 무거운 계산없이) 로컬 SQL Server에 약 10-13 초 연결을 설정하려면?

내 하드웨어, 어쨌든, 10 초 그래서 현대가 아니라 있다는 생각은 ...

당신은 SQL Server에 대한 첫 번째 연결의 성능을 향상시키기 위해 나에게 몇 가지 솔루션을 제안 할 수?

P. 긴 첫 번째 연결 프로그램이 제대로 작동하고 성능 문제가 발생하지 않습니다.

+0

수있는 SQL 서버 액세스 인터넷)? –

답변

2

SQL Server와 WCF를 통해 n 계층 응용 프로그램에서이 "성능 저하"동작에 대해 알고 있습니다. 10-13 초가 정말 짜증나고 극단적이지만. 내가하는 일은 WCF 서비스에 대한 연결을 걷어 내고 이후 SQL Server에서 SQL Server 선택 쿼리 (EF 사용)가 포함 된 WCF 서비스에 대한 더미 호출로 시작하는 SQL Server 연결을 시작 화면에 연결하는 것입니다.

이렇게하면 최종 사용자는 처음으로 시작 지연을 경험하지 않습니다. 최종 사용자가 실제로 데이터를 보거나 가져 오기를 원할 때 응용 프로그램이 응답합니다.

이 실제로 "문제 해결"하지 않지만 그것은 좋은 해결 방법/커버 업입니다;

1

대단히 모델의 복잡성에 달려 있습니다. 합리적으로 복잡한 경우보기를 생성 할 때 약간의 지연이 발생할 수 있습니다. here과 같이 빌드시 뷰를 미리 생성 할 수 있습니다.

+0

저는 vviews를 전혀 사용하지 않습니다. ERD는 13-15 개의 테이블과 3NF 정규화 및 M : N과 같은 기본 관계 만 포함합니다. 이 상황에서보기를 사용해야할까요? 실적을 향상 시키시겠습니까? 감사. –

+0

알렉스는 SQL Server 'views'에 대해 이야기하고 있습니다. EF를 사용하는 경우 '보기'를 사용하고 있습니다. 링크를 읽은 다음보기를 미리 생성 해보십시오. 그러면 실적에 도움이됩니다. –

+0

그러나 "간단한 상황"에서 10-13 초의 성능은 다른 일이 진행되고 있음을 의미합니다. –