2012-07-11 3 views
0

저는 n 계층 아키텍처를 개발 중이며 데이터 액세스 계층에서는 Entity Framework 4.1을 사용하고 있습니다. 데이터베이스가 저장 프로 시저를 노출하지 않습니다. 또한 WCF에서 개발 한 추가 레이어 인 서비스 레이어가 있습니다. 각 서비스 호출에 대해 using 문에서 새 데이터 컨텍스트를 사용하십시오. 서비스 호출이 초당 1000에 도달한다고 생각하면이 방법이 옳습니다.Entity Framework 및 WCF 최선의 접근법?

좋습니다.

+0

_service 호출이 무엇을 의미합니까 second_ 1000에 도달 할 것인가? – Shyju

+5

질문에 대한 답변이 아니지만 모든 것이 저장 프로 시저 인 경우 엔터티 프레임 워크를 사용하는 이유를 알고 싶을 때 궁금합니다. ORM은 저장 프로 시저의 필요성을 없애기로되어 있습니다. 당신은 단지 SP를 호출 해야하는 경우, 일반 ado.net 충분하지 않을까요? – dreamerkumar

+0

이미 저장 프로 시저가있는 경우 EF가 필요 없으며 EF에 추가 된 기능으로 인해 성능이 저하됩니다. – EtherDragon

답변

0

1000 - 서비스가 실제로 뭔가를해야하는 경우 매우 적합한 서버 또는로드 균형 환경이 필요합니다.

데이터베이스가 저장 프로 시저 만 노출하고 직접 SQL을 실행할 수 없으면 (LINQ를 사용할 수 없음) EF를 사용할 이유가 없습니다. 실제로 더 나쁜 성능을 제외하고는 추가 값을주지 않기 때문에 안되는 이유가 많이 있습니다. 또한 저장 프로 시저가 여러 결과 집합, 테이블 값 매개 변수 및 기타 고급 기술을 사용하는 경우 EF 4.1에서 사용할 수 없습니다.

직접 ADO.NET을 사용하면 쿼리를 비동기 적으로 실행하여 asynchronous WCF service operations = 컴퓨팅 성능과 처리량을 더 잘 활용할 수 있습니다.

0

서버로드 균형 조정, sclability, 동시성, thorottling을 포함하되 이에 국한되지 않는 WCF 성능 문제에 대해 더 걱정해야합니다. 장래에 minium breakdown time을 필요에 따라 쉽게 확장 할 수있는 바인딩을 선택해야합니다.

또한 초당 1000 회의 벤치 마크를 지원하려면 백 엔드에서 우수한 멀티 스레드 디자인을 수행하고 있는지 확인해야합니다. (나는 아직도 그것이 무엇인지 궁금해하고 있습니다.) 서비스 처리량을 높이기 위해서입니다.

EF가 귀하의 케이스에서 어떤 부분도 재생하지 못합니다. 여기서 원시 성능이 필요합니다. 불필요한 것들을 다른 레이어에 추가하여 죽이지 마십시오. 여기에 시작할 수 있습니다로드 밸런싱을 위해

Loadbalancing

관련 문제