보고서 및 스냅샷 크기 제한

Reporting Services 배포를 관리하는 관리 담당자는 이 문서의 정보를 사용하여 보고서가 보고서 서버에 게시되고 런타임에 렌더링되고 파일 시스템에 저장될 때 보고서 크기 제한을 이해할 수 있습니다. 또한 이 문서에서는 보고서 서버 데이터베이스의 크기를 측정하는 방법에 대한 실질적인 지침을 제공하고 스냅샷 크기가 서버 성능에 미치는 영향을 설명합니다.

게시된 보고서의 최대 크기

보고서 서버에서 보고서 및 모델 크기는 보고서 서버에 게시하는 보고서 정의(.rdl) 및 보고서 모델(.smdl) 파일의 크기를 기반으로 합니다. 보고서 서버는 게시하는 보고서의 크기를 제한하지 않습니다. 그러나 Microsoft ASP.NET 서버에 게시되는 항목에 대해 최대 크기를 적용합니다. 기본적으로 이 제한은 4MB(메가바이트)입니다. 이 제한을 초과하는 파일을 보고서 서버에 업로드하거나 게시하면 HTTP 예외가 발생합니다. 이 경우 파일의 요소 값을 늘려 기본값을 수정할 maxRequestLengthMachine.config 수 있습니다.

보고서 모델이 클 수 있지만 보고서 정의는 거의 4MB를 초과하지 않습니다. 보다 일반적인 보고서 크기는 KB(킬로바이트) 순서입니다. 그러나 포함된 이미지를 포함하는 경우 해당 이미지의 인코딩으로 인해 4MB 기본값을 초과하는 큰 보고서 정의가 발생할 수 있습니다.

ASP.NET 게시된 파일에 최대 제한을 적용하여 서버에 대한 서비스 거부 공격의 위협을 줄입니다. 상한값을 늘리면 이 제한이 제공하는 보호의 일부가 훼손됩니다. 이렇게 하면 다른 보안 위험보다 더 중요하다고 확신하는 경우에만 값을 늘입니다.

요소에 대해 maxRequestLength 설정한 값은 적용하려는 실제 크기 제한보다 커야 합니다. HTTP 요청 크기가 불가피하게 증가하는 것을 고려하려면 값을 더 크게 만듭니다. 이 증가는 SOAP 봉투의 모든 매개 변수를 캡슐화하고 Base64 인코딩을 적용한 후에 발생합니다. Base64 인코딩은 원래 데이터의 크기를 약 33% 증가합니다. 따라서 요소에 지정한 값은 maxRequestLength 사용 가능한 실제 항목 크기보다 약 33% 커야 합니다. 예를 들어 maxRequestLength의 값으로 64MB를 지정하는 경우, 실제로 보고서 서버에 게시되는 보고서 파일의 최대 크기를 48MB 정도로 예상할 수 있습니다.

메모리의 보고서 크기

보고서를 실행하면 보고서 크기는 출력 스트림 크기와 보고서에 반환된 데이터 양을 더한 크기가 됩니다. Reporting Services는 렌더링된 보고서의 크기에 최대 제한을 적용하지 않습니다. 시스템 메모리는 크기에 대한 상한을 결정합니다. 기본적으로 보고서 서버는 보고서를 렌더링할 때 사용 가능한 모든 구성된 메모리를 사용합니다. 그러나 구성 설정을 지정하여 메모리 임계값 및 메모리 관리 정책을 설정할 수 있습니다. 자세한 내용은 보고서 서버 애플리케이션에 사용 가능한 메모리 구성을 참조 하세요.

모든 보고서의 크기는 반환되는 데이터 양과 보고서에 사용된 렌더링 형식에 따라 크게 달라질 수 있습니다. 매개 변수가 있는 보고서는 매개 변수 값이 쿼리 결과에 미치는 영향에 따라 크거나 작을 수 있습니다. 선택한 보고서 출력 형식은 다음과 같은 방식으로 보고서 크기에 영향을 줍니다.

  • HTML은 보고서를 한 번에 한 페이지씩 처리합니다. 보고서는 더 작은 단위로 처리되므로 특정 청크를 처리하는 데 필요한 메모리가 적습니다.

  • PDF, Excel, TIFF, XML 및 CSV는 메모리에 있는 전체 보고서를 처리한 다음 해당 보고서를 사용자에게 표시합니다.

렌더링된 보고서의 크기를 측정하려면 보고서 실행 로그를 볼 수 있습니다. 자세한 내용은 보고서 서버 ExecutionLog 및 ExecutionLog3 보기를 참조 하세요.

디스크에서 렌더링된 보고서의 크기를 계산하려면 보고서를 내보낸 다음 파일 시스템에 저장할 수 있습니다. 저장된 파일에는 데이터 및 보고서 서식 정보가 포함됩니다.

Excel 형식으로 렌더링할 때만 보고서 크기가 엄격하게 제한됩니다. 워크시트는 65,536개의 행 또는 256개의 열을 초과할 수 없습니다. 다른 렌더링 형식에는 이러한 제한이 없으므로 크기는 서버의 리소스 양에 의해서만 제한됩니다.

참고 항목

보고서 처리 및 렌더링은 메모리에서 발생합니다. 보고서가 크거나 사용자 수가 많은 경우에는 보고서 서버 배포가 사용자에게 만족스러운 수준에서 수행될 수 있도록 용량 계획을 세워야 합니다. 도구 및 지침에 대한 자세한 내용은 MSDN 의 다음 게시를 참조하세요. Reporting Services 를 사용한 확장성 및 성능 계획 및 Visual Studio 2005를 사용하여 SQL Server 2005 Reporting Services 보고서 서버에서 부하 테스트를 수행합니다.

스냅샷 스토리지 측정

특정 스냅샷의 크기는 보고서에 있는 데이터 양에 비례합니다. 스냅샷은 일반적으로 보고서 서버에 저장된 다른 항목보다 훨씬 큽니다. 스냅샷 크기는 일반적으로 몇 메가바이트에서 수십 메가바이트까지 다양할 수 있습니다. 큰 보고서가 있는 경우 더 큰 스냅샷 볼 수 있습니다. 보고서 서버 데이터베이스에 필요한 디스크 공간의 양은 짧은 기간 동안 빠르게 증가할 수 있습니다. 디스크 공간 증가의 양은 스냅샷 사용하는 빈도 및 보고서 기록을 구성하는 방법에 따라 달라집니다.

기본적으로 reportserverreportservertempdb 데이터베이스는 모두 자동 증가로 설정되어 있습니다. 데이터베이스 크기는 자동으로 증가할 수 있지만 크기는 자동으로 감소되지 않습니다. 스냅샷을 삭제했기 때문에 reportserver 데이터베이스 크기가 너무 큰 경우에는 이 데이터베이스 크기를 직접 줄여서 디스크 공간을 복구해야 합니다. 마찬가지로, 비정상적으로 많은 양의 대화형 보고를 수용하기 위해 reportservertempdb가 늘어난 경우 디스크 공간 할당은 축소될 때까지 해당 설정에서 다시 기본.

보고서 서버 데이터베이스의 크기를 측정하려면 다음 Transact-SQL 명령을 실행합니다. 정기적으로 총 데이터베이스 크기를 계산하면 시간 경과에 따라 보고서 서버 데이터베이스에 공간을 할당하는 방법에 대한 합리적인 추정치를 개발하는 데 도움이 될 수 있습니다. 다음 문은 현재 사용되는 공간의 양을 측정합니다. 문은 기본 데이터베이스 이름을 사용 중이라고 가정합니다.

USE ReportServer  
EXEC sp_spaceused  

스냅샷 크기 및 보고서 서버 성능

스냅샷 크기는 보고서가 처리되고 렌더링될 때 서버 성능에 영향을 줍니다. 서버 성능은 렌더링 작업의 영향을 가장 많이 받으므로 스냅샷 큰 경우 사용자가 보고서를 요청할 때 약간의 지연이 발생할 수 있습니다. 사용자 수에 따라 스냅샷 크기가 100MB를 초과하면 지연이 발생할 수 있습니다.

대규모 스냅샷 인해 성능 지연을 최소화하려면 다음 단계를 완료합니다.

  • 보고서 서버와 SQL Server 데이터베이스 엔진 별도의 컴퓨터에 배포합니다.

  • 시스템 메모리를 더 많이 추가합니다.

  • 엔터프라이즈용 보고서 서버를 구성하는 방법에 대한 모범 사례는 MSDN 웹 사이트의 "Reporting Services를 사용한 확장성 및 성능 계획" 문서를 검토하세요.

보고서 서버 데이터베이스에 저장된 스냅샷 수량은 성능 요소가 아닙니다. 서버 성능에 영향을 주지 않고 많은 수의 스냅샷 저장할 수 있습니다. 스냅샷 무기한 유지할 수 있습니다. 그러나 보고서 기록은 구성할 수 있습니다. 보고서 서버 관리자가 보고서 기록 제한을 낮추면 유지하려는 기록 보고서가 손실될 수 있습니다. 보고서를 삭제하면 모든 보고서 기록이 삭제됩니다.

보고서 처리 속성 설정
보고서 서버 데이터베이스(SSRS 기본 모드)
대규모 보고서 처리