2011-01-30 2 views
0

나는 SO 커뮤니티 의견을 듣고이를 위해 연습하는 것이 좋습니다.세션에 저장하는 것 vs. 데이터베이스에서 가져 오기하는 것

현재 사용자가 약식을 채울 때마다 (~ 100 개의 행 (10 개의 속성이있는 클래스)) 세트의 유효성을 검사하는 ASP MVC 응용 프로그램이 있습니다. 응용 프로그램에는 약 10 개의 양식이 있으며 거의 ​​동시에 응용 프로그램에 3 명 이상의 동시 사용자가 있습니다.

현재로드 된 세션 변수에 모든 규칙을 저장하며 양식 전체에 걸쳐 유지됩니다. 메모리에 저장하는 것이 너무나 좋지 않습니까? 응용 프로그램의 속도를 높이기 위해이 작업을 수행 했으므로 부하가 꽤 빠르며 (초 미만) 양식 당 필요한만큼로드하는 것에 대해 논쟁 중입니다.

그래서 각 표의 유효성을 검사 할 때 (세션 변수)의 규칙 표를 또는로드 하시겠습니까?

+0

사용자가 해당 양식에 액세스하는 빈도는 얼마입니까? 양식 당 1 분 이상이라면 요청시로드가 이미 정당화 될 수 있습니다. – xandy

+0

좋은 질문입니다. 양식은 양식 당 평균 약 5 개의 질문이므로 간결하게하기 위해 각 양식은 약 5 분 동안 다시 게시를 기다립니다. –

답변

2

지금까지 거의 당신이 세션에서 꽤 많이 저장할 수 있음을 의미 응용 프로그램

에 3 개 이상의 동시 사용자가 없습니다.

귀하의 접근 방식은 '확장 성'이 뛰어나지 않으므로 일반적인 지혜가 그것에 반박합니다. 그러나 '3'이 '300'또는 '3000'이되지 않는 한 안전합니다.

+0

전 Henk과 완전히 동의합니다. 사용하는 것을 볼 수 있다고 생각합니다. 동시 사용자가 10-20 명으로 늘어나는 경우, 이미 추상화되어 있기 때문에 탈선이 전혀 나쁘지 않을 것입니다. –

+0

나는 또한 확장 성 요소를 해결할 수있는 변수 응용 프로그램을 만들기 위해 캐싱을 고려하고 있다고 언급하는 것을 잊어 버렸지 만, 규칙 변경은 바람직하지 않은 재부팅을 필요로합니다. –

+1

@Mark 캐시에 저장하면 (System.Web.Caching 또는 .NET의 System.Runtime.Caching.MemoryCache) 만료 시키거나 다른 개체 (예 : 파일)를 모니터링 할 수 있습니다. 변경. 어쨌든 앱을 다시 시작할 필요가 없습니다. 코드가 캐시를 읽고 항목이 누락되면 언제든지 캐시를 다시로드하십시오. – holmes

관련 문제