2014-01-16 1 views
0

투명한 개발자가 세션과 같이 데이터 캐싱을 구현 한 것으로 보이는 하나의 asp.net 애플리케이션의 유지 관리 작업을하고 있습니다. 즉, 데이터를 캐시에 저장합니다. 세션이 응용 프로그램에서이데이터 캐싱이 세션처럼 사용되면 성능이 향상 될 것입니다.

Public Function GetDataCache(ByVal dataCacheKey As String) As Object 
    dataCacheKey = dataCacheKey & Convert.ToString(LoginSessionDO.UserID) 
    Return Cache(dataCacheKey) 
End Function 

처럼 사용자가 실제로 만 마침내는 데이터를 저장하는 저장 버튼을 누르면 해당 현재 사용자의 캐시에 저장 임시 그리드에서 여러 행 (데이터)를 추가 할 수 있습니다 많은 스크린이있다 데이터 베이스.

제 질문은 캐시가 세션처럼 사용되는 것입니다. 성능 향상을 가져다 줄 것인가? 실제로 내 dev에 그것을 바꿀 수 . 환경을 테스트했지만 환경에서 찌르 듯이로드를 생성 할 수는 없으며 프로덕션 환경에서 코드를 변경하고 배포 할 수 없습니다.

  1. 캐싱이 구현 된 방법 좋은가요 나에게 제안하세요?
  2. 세션보다 세션보다 성능이 좋습니까?
+1

아닐지는 몰라도 알 수 있습니다. 데이터가 얼마나 큰지, 얼마나 많은 사용자가 자주 사용 되는가, 자주 변경 되는가, 제대로 제거되었는지, 데이터베이스 쿼리가 빠르게/느리게 채울 것인가 ... –

+0

데이터는 캐시 사용자별로 저장됩니다. 한 사용자 만 시스템에 로그인 한 저장된 데이터에 액세스 할 수 있으므로 시스템에 로그인 한 사용자가 50 명인 경우 현재 50 페이지의 캐시 객체가 모두 동일한 페이지에 있으면 특정 페이지를 생성합니다. 이렇게하면 세션 변수가 좋은 캐시인가? 평균적으로 각 그리드에는 5-10 개의 열이있는 10-40 개의 레코드가 있습니다 –

답변

1

캐시를 삭제해야합니다. 그렇지 않으면 앱 도메인이 재활용 될 때까지 모든 항목이 유지됩니다. 세션은 만료 기간이 훨씬 짧으며 예를 들어 로그 아웃시 명시 적으로 중단 될 수 있습니다.

사이트가 커질 경우 크기 조정 문제 일 수 있습니다. 그러나 세션의 만료 시간이 짧아지면 세션이 더 이상 존재하지 않을 경우 저장 문제가 발생할 수 있습니다. db의 스테이징 테이블이 더 나은 접근 방법 일 수 있습니다.