2013-08-21 4 views
0

세션/viewstate에 datatable/set을 저장하는 것에 대해 많이 읽었습니다. 일반적인 컨센서스는 웹 페이지의 속도가 느려지므로 좋지 않은 것 같습니다. Now Iam은 사용자가 퀴즈를 작성/관리/호스팅 할 수있는 웹 사이트를 만들고 있습니다 ... 그리고 데이터베이스에서 특정 수의 질문을 검색하고 (질문의 가치가 정의 될 것입니다) 세션에서 유지 관리되는 데이터 테이블에 저장합니다 ... Max . 질문의 아니오는 120이어야합니다. 세션에 저장되는 전체 데이터 = 120 가지 질문 + 옵션 + correctanswer; 후보 및 유저 데이터의 점수와 같은 다른 작은 것들과 함께세션에 데이터 세트 저장

내 질문 : 질문의 최대 수를 고려하면, 120이 될 그럼 친절하게 대안을 말하는 나를 도와 주면이 많은 데이터 심각, 내 페이지의 성능에 영향을 미칠 것이다 방법 ... thx.

+0

왜 120 개의 질문 + 옵션 + 답변을 세션에 저장해야합니까 ?? 왜 당신은 단지 db에 값을 저장하지 않고 필요할 때 검색합니까? 성능상의 문제가 있다면 뭔가 잘못하고 있음을 의미하며 저장을 위해 세션을 사용하는 것은 항상 나쁜 생각입니다. 현재 상태를 저장하는 수단입니다. 데이터 저장소가 아닙니다! Btw,'데이터베이스에서 일정 수의 질문을 검색하고 (질문의 가치가 정의 됨) 세션에서 유지되는 데이터 테이블에 저장합니다. – walther

답변

0

는 뷰 상태는 확실히 데이터 세트가 (매우 긴) 문자열로 직렬화 및 각 요청과 함께 클라이언트로 전송됩니다로 이러한 종류의 데이터를 저장하기에 좋은 장소가 아니다. 일반적으로 가능한 한 뷰 상태를 피할 것입니다 (제 생각에는 장점보다 훨씬 불리한 점이 있습니다).

세션에서 데이터 세트를 저장하는 것은 진행중인 세션 모드를 사용하는 한 괜찮습니다. 이 경우 세션 데이터는 메모리에 유지되며이 접근법의 유일한 단점은 (작업 내용을 자세히 살펴 보지 않고) 때로는 현재 필요하지 않은 메모리를 해제하는 것을 고려할 수도 있다는 것입니다. SQL Server를 사용하여 세션 데이터를 저장하는 경우이 경우 직렬화/비 직렬화로 다른 저장소를 선택하면 응용 프로그램 성능에 영향을 미칠 수 있습니다.

0

이는 응용 프로그램에 제한을 두려는 위치에 따라 다릅니다.

메모리에 데이터를 저장하면 응용 프로그램이 특정 동시 사용자 수로 제한됩니다.

매번 데이터베이스에서 데이터를 가져 오면 응용 프로그램이 초당 처리 할 수있는 요청 수가 줄어 듭니다. 당신이 필요가 무엇인지 알고

은 최적화와 마찬가지로, 당신은 단지 최적화해야합니다, 그래서 당신은 그냥 데이터베이스에서 데이터를 얻을 것을 제안하고 실제로 필요가있을 때 캐시를 추가합니다.