다음을 통해 공유


보고서 캐시 (SSRS)

보고서 서버는 처리된 보고서의 복사본을 캐시했다가 사용자가 보고서를 열면 해당 복사본을 반환할 수 있습니다. 사용자에게 보고서가 캐시된 복사본임을 나타내는 데 사용할 수 있는 유일한 증거는 보고서가 실행된 날짜와 시간입니다. 날짜 또는 시간이 최신이 아니고 보고서가 스냅샷이 아닌 경우 보고서는 캐시에서 검색되었습니다.

캐싱은 보고서가 크거나 자주 액세스되는 경우 보고서를 검색하는 데 필요한 시간을 단축시킬 수 있습니다. 서버를 다시 시작하면 보고서 서버 웹 서비스가 다시 온라인 상태가 되면 모든 캐시 인스턴스가 복구됩니다.

캐싱은 성능을 향상시키는 기술입니다. 캐시의 내용은 휘발성이며 보고서가 추가, 대체 또는 제거되면 그에 따라 변경될 수 있습니다. 보다 예측 가능한 캐싱 전략이 필요한 경우 보고서 스냅샷을 만들어야 합니다. 자세한 내용은 보고서 처리 속성 설정을 참조하세요.

참고 항목

보고 서비스에서는 사용자 세션 및 보고서 처리를 지원하기 위해 데이터베이스에 임시 파일을 저장합니다. 이러한 파일은 단일 브라우저 세션 중에 일관된 뷰를 제공하며 내부용으로 사용하기 위해 캐시됩니다. 내부용 임시 파일을 캐시하는 방법에 대한 자세한 내용은 보고서 서버 데이터베이스(SSRS 기본 모드)를 참조하세요.

캐시 인스턴스

보고서의 캐시 인스턴스는 보고서의 중간 형식을 기반으로 합니다. 보고서 서버는 일반적으로 보고서 이름에 따라 보고서의 인스턴스 하나를 캐시합니다. 그러나 보고서에 쿼리 매개 변수에 따라 다른 데이터가 포함될 수 있는 경우 지정된 시간에 여러 버전의 보고서가 캐시될 수 있습니다. 예를 들어 지역 코드를 매개 변수 값으로 사용하는 매개 변수가 있는 보고서가 있다고 가정합니다. 네 명의 다른 사용자가 4개의 고유한 지역 코드를 지정하는 경우 캐시된 복사본 4개가 만들어집니다.

고유한 지역 코드를 사용하여 보고서를 실행하는 첫 번째 사용자는 해당 지역에 대한 데이터가 포함된 캐시된 보고서를 만듭니다. 동일한 지역 코드를 사용하여 보고서를 요청하는 후속 사용자는 캐시된 복사본을 가져옵니다.

모든 리소스를 캐시할 수 있는 것은 아닙니다. 보고서에 사용자 종속 데이터가 포함되거나, 사용자에게 자격 증명을 요청하거나, Windows 인증을 사용하는 경우 캐시할 수 없습니다.

카드 새로 고침

이전에 캐시된 복사본이 만료된 이후에 사용자가 해당 보고서를 선택하면 캐시된 보고서가 최신 버전으로 대체됩니다. 캐시 인스턴스로 실행되도록 구성된 보고서는 만료 설정에 따라 정기적으로 캐시에서 제거됩니다. 데이터의 즉시 필요 여부에 따라 보고서 만료를 분 단위로 설정하거나 예약된 시간에 보고서가 만료되도록 설정할 수 있습니다. SOAP API를 사용하지 않는 한 캐시에서 직접 보고서를 삭제할 수 없습니다.

캐시 만료를 구성하려면 공유 일정 또는 보고서별 일정을 사용할 수 있습니다. 공유 일정을 사용하고 일정이 나중에 일시 중지되면 일정이 작동하지 않는 동안 캐시가 만료되지 않습니다. 공유 일정이 나중에 삭제되면 일정 설정의 복사본이 보고서별 일정으로 저장됩니다.

일정이 만료되거나 캐시 만료일에 예약 엔진을 사용할 수 없는 경우 보고서 서버는 라이브 보고서를 실행합니다. 이 작업은 예약된 작업을 재개할 수 있을 때까지 계속됩니다. 일정을 연장하거나 예약 서비스를 시작할 때 예약된 작업을 다시 시작할 수 있습니다.

캐시 미리 로드

서버 성능을 향상시키기 위해 캐시를 미리 로드할 수 있습니다. 다음과 같은 두 가지 방법으로 매개 변수가 있는 보고서 인스턴스 컬렉션을 사용하여 캐시를 미리 로드할 수 있습니다.

  1. 캐시 새로 고침 계획을 만듭니다. 새로 고침 계획을 만들 때 단일 보고서의 일정을 지정하거나 공유 일정을 지정할 수 있습니다.

  2. Null Delivery Provider를 사용하는 데이터 기반 구독을 만듭니다. 구독에서 Null Delivery Provider를 배달 방법으로 지정하면 보고서 서버는 보고서 서버 데이터베이스를 배달 대상으로 지정합니다. 서버는 null 렌더링 확장 프로그램이라는 특수 렌더링 확장을 사용합니다. 다른 배달 확장 프로그램과 달리 Null Delivery Provider에는 구독 정의를 통해 구성할 수 있는 배달 설정이 없습니다.

보고서 캐싱은 다른 매개 변수 값이 다른 보고서 인스턴스를 생성하는 데 사용되는 매개 변수가 있는 보고서의 여러 인스턴스를 캐시하려는 경우에 특히 유용합니다. 보고서에 쿼리 기반 매개 변수만 지정할 수 있습니다.

일정을 지정하거나 데이터 기반 구독을 만들 때 보고서가 캐시에 배달되는 빈도를 예약합니다. 새 복사본을 캐시에 배달하려면 이전 복사본이 만료되어야 합니다. 따라서 캐시 만료 설정을 포함하도록 보고서의 실행 속성을 구성해야 합니다. 만료 설정은 정의한 구독 일정과 일치해야 합니다. 예를 들어 매일 밤 실행되는 구독을 만드는 경우 캐시는 구독의 런타임 전에 매일 밤 만료되어야 합니다. 실행 속성에 만료 시간이 포함되지 않으면 최신 배달은 무시됩니다. 캐시 새로 고침 계획에 대한 자세한 내용은 일정을 참조하세요. 속성을 설정하는 방법에 대한 자세한 내용은 보고서 처리 속성 설정 을 참조하세요. 데이터 기반 구독을 사용하는 방법에 대한 자세한 내용은 데이터 기반 구독 을 참조하세요.

캐시 만료를 유발하는 조건

캐시 보고서는 다음 이벤트에 대한 응답으로 무효화됩니다. 보고서 정의가 수정되거나, 보고서 매개 변수가 수정되거나, 데이터 원본 자격 증명이 변경되거나, 보고서 실행 옵션이 변경됩니다. 캐시에 저장된 보고서를 삭제하면 캐시된 버전도 삭제됩니다.

어떤 이유로든 캐시 인스턴스에서 보고서를 렌더링할 수 없는 경우 보고서 서버는 보고서를 다시 실행합니다. 이 작업을 수행하면 올바른 매개 변수 값과 업데이트된 매개 변수 값으로 보고서가 생성됩니다.