"공유 수준이 높은" 보고서 캐시
Crystal Reports for Visual Studio 프로젝트의 확장성을 최적화하는 방법 중 하나로 "공유 수준이 높은" 보고서를 캐싱할 수도 있습니다.
"공유 수준이 높은" 보고서 판별 기준
모든 사용자에게 관련된 공통 정보가 포함된 보고서는 공유 수준이 높습니다. 기업 전체의 분기별 수익을 보여 주는 보고서를 예로 들 수 있습니다. 반면에, 개인별 휴가 일수를 보여 주는 보고서는 개별 사용자에게 관련된 것이므로 공유 수준이 낮습니다.
상태 유지 및 공유 수준
보고서에서 다른 페이지를 보거나 뷰어의 도구 모음 또는 런타임 코드에서 변경된 사항을 반영하려면 여러 페이지를 다시 로드할 때마다 대부분의 보고서를 표시해야 합니다. 페이지를 로드할 때 보고서 상태가 유지되도록 하려면 보고서를 서버 메모리에 저장해야 합니다.
이를 위해 선택할 수 있는 상태 유지 방법에는 여러 가지가 있습니다. 이러한 방법에 대한 자세한 내용은 "Crystal Reports에 사용할 상태 유지 방식 선택"을 참조하십시오. 그러나 대부분의 보고서는 사용자의 Session 개체 또는 응용 프로그램의 Cache 개체에 보고서를 배치하여 유지됩니다. 공유 수준이 낮은 보고서는 사용자의 Session 개체를 사용하여 유지해야 합니다("Session 및 ReportDocument 개체 모델의 상태 유지" 참조). 공유 수준이 높은 보고서는 응용 프로그램의 Cache 개체를 사용하여 유지해야 합니다("Cache 및 ReportDocument 개체 모델의 상태 유지" 참조).
상태 유지 및 확장성
상태 유지 방법을 적절히 사용하면 불필요한 서버 메모리 사용을 줄여 확장성을 향상시킬 수 있습니다. 예를 들어 공유 수준이 낮은 보고서를 응용 프로그램의 Cache 개체에 배치하면 사용자가 응용 프로그램을 종료한 후에도 오랫동안 사용자별 보고서가 Cache에 남아 있게 되므로 메모리가 불필요하게 낭비됩니다. 반대로, 공유 수준이 높은 보고서를 사용자의 Session 개체에 배치하면 보고서의 인스턴스가 하나만 있으면 되는 상황에서 여러 인스턴스를 저장함에 따라 메모리가 낭비되고 상당한 중복이 발생됩니다.
공유 수준이 낮은 보고서에는 사용자 수준의 상태 유지 방법(Session)을 사용하고 공유 수준이 높은 보고서에는 응용 프로그램 수준의 상태 유지 방법(Cache)을 사용하면 서버 메모리의 확장성을 최대화할 수 있습니다.