2012-01-22 1 views
1

나는 nhibernate와 SQL 서버를 사용하는 asp.net-mvc3 웹 사이트를 가지고있다. 로드 균형 조정 된 2 개의 웹 서버가 있습니다. 이것은 읽기가 무거운 DB (쓰기 성능에 그리 관심이 없음)이지만 쿼리가 점점 더 복잡해지고 (테이블 조인이 많음) 성능이 크게 저하됩니다.Ncache Express는이 확장 성 문제를 해결합니까 아니면 프리미어 버전으로 업그레이드해야합니까?

내가 읽은 의견을 바탕으로 가장 큰 이점은 분산 캐시를 앞에 놓는 것입니다. 나는 nhibernate와 I found NCache Express을 지원하는 윈도우에서 무료 옵션을 살펴 보았다. 분명히 많은 테스트를하고 놀아 볼 것입니다. 그러나이 익스프레스 버전이 실행 가능한 솔루션 측면에서 나를 제한한다면 (많은 시간을 낭비하기 전에)보고 싶었습니다. 나는 여기 버전 비교를보고 어떤 차단제를 볼 수 있지만 거기에 문제가 있는지 nhibernate와 NCache Express를 사용하는 사람으로부터 의견을 얻기를 원한다고 생각하지 않습니다.

또한이 문제를보다 효율적으로 해결할 수있는 대안 제품이 있으면 좋을 것입니다.

+2

캐싱 솔루션을 사용하기 전에 DB 측면의 철저한 최적화 (데이터 모델, 색인 생성, SQL 문, 쿼리 계획)를 강력히 권장합니다 ... 프로파일 러를 사용하여 응용 프로그램의 병목 현상을 찾아 그에 따라 행동하십시오. HW (DB 서버, 네트워크 성능 등)를 확인하십시오. 완전히 ALL이 최적화되어 있고 캐싱에 대한 성능 검사가 만족스럽지 않은 경우 ... – Yahia

+0

ASP.NET의 캐싱 메커니즘을 사용하여 쿼리 결과를 캐싱 해 보셨습니까? 충분하지 않았습니까? 어떤 경우 든, 테이블 조인이 많이 필요한 경우, 특정 케이스에 대해 잘못된 스키마를 사용하고있을 가능성이 큽니다. 아마도 조인을 줄이기 위해 테이블을 비정규 화해야 할 수도 있습니다. –

답변

1

앞서 언급했듯이 먼저 데이터베이스를 최적화해야하지만 물론 이미 그렇게하고 있습니다.

나는 2 개의 서버가있는 웹 사이트에서도 작동하며 캐시 공급자를 chosing하는 과정에서 MemcacheD으로 해결했습니다. 매우 견고하며 설치가 간단합니다. NCache Expresse도 잘 동작 할 것입니다. 미스터리는 없지만 NCache express는 2 개의 서버 한계가 있기 때문에 Memcache를 사용하는 것이 좋습니다. 따라서 aditional 노드를 추가해야하는 경우 변경해야합니다.

또한 서버에 Windows 2008이있는 경우 Microsoft의 AppFabric을 확인해야합니다. 매우 좋습니다.

+0

@ memcache가 지원되고 창에서 사용하도록 권장됩니까? – leora

0

apphabric을 nhibernate 2 차 수준 캐시로 시도 할 수 있습니다. 별도의 서버에서 애플리케이션 노드로 실행해야합니다.

1

사용이 당신 NCache은 예를 들어, 제공해야 할 무엇인지 기능 평가하기 나는이 점 :

에서 아무 말도하지 못할 그래서 난 당신이

과 관련하여 대안을 업그레이드하는 데 필요한 것이라고 생각하지 않는 것보다 http://www.alachisoft.com/ncache/edition-comparison.html

다른 SQL 종속성과 물건, 나는 많은 사용하지 않은

추 신 : 복제는 읽기 집약적 인 애플리케이션에 적합하고 쓰기 집약적 인 경우에 적합하지 않습니다.