2010-07-22 3 views
0

우리는 asp.net 응용 프로그램에서 SQLCache 종속성을 사용하고 있습니다. 우리는 캐시에 100000 개의 레코드를 저장하는 것이 좋습니다. 그렇지 않으면 서버의 CPU가 100 % 부딪혀 응용 프로그램 풀을 재설정해야하기 때문에 대체 솔루션을 찾아야합니다.SQLCacheDependency with 100000 Records

도움이 될 것입니다.

+6

당신의 질문에 답변 해 주셨습니다 ... –

답변

3

구현 방법에 따라 다릅니다. 그러나 그것은 나쁜 생각처럼 들린다. 당신은 많은 세부 사항을주지 않습니다.

동일한 캐시 버킷에 100000 개의 레코드를 저장하는 경우 무효화됩니다. 다음 요청은 진행할 수 있기 전에 모든 100000 개의 레코드를 검색해야합니다. 여러 사용자가 동시에 자원을 요청하면 첫 번째 요청이 레코드 검색을 완료 할 때까지 대기열에 배치됩니다. 그것은 당신의 문제 일 수있는 것 같습니다.

데이터를 알고있는 정도와 필요한시기에 따라 개별 캐시 버킷 또는 작은 배치로 레코드를 저장하는 것이 좋습니다. 그런 다음 하나의 요청 만 진행하기 전에 실제로 필요한 것을 가져와야합니다.

이 답변이 얼마나 도움이되는지는 모르지만 질문에 대해서는 자세히 설명하지 않았습니다. 언제든지 질문을 업데이트하면 더 나은 답변을 얻을 수 있습니다.

+1

"캐시 버킷"이란 무엇입니까? 개체가 캐시에 저장되는 키입니다 (예 : 캐시 [ "_ bucket_"] = 값; – M4N

1

memcached 또는 Code Name Velocity과 같은 캐시 서버를 사용하려면 Microsoft에서 CTP3이 필요합니다. Velocity의 경우 blog이고 SQL 종속성의 경우 here입니다.

이들은 모두 분산 캐시 서버이므로 시나리오에 따라 더 잘 작동해야하며 훨씬 더 확장됩니다.

+0

사실,하지만 100000 레코드 만있는 경우에는 ASP .NET 캐시가 잘 처리 될 수 있어야합니다. 실제로 확장해야하는 경우 좋은 대답입니다. – driis

+0

나는 100.000이 작다는데 동의한다. 내부 사전조차도 처리 할 수 ​​있습니다. 코드에서 종속성 트리거가 작동하는 방식에 따라 Velocity가 더 나은 성능을 발휘할 수도 있습니다. 또한 캐시 된 데이터의 크기 나 구조를 알지 못합니다. –

+1

Event simpler AppFaric을 사용해 보았지만 현재 CPU가 100 % 진행되지는 않지만 크기의 속도는 매우 느립니다. –