보고서 및 스냅숏 크기 제한Report and Snapshot Size Limits

Reporting ServicesReporting Services 배포를 관리하는 관리자는 이 항목의 정보를 통해 보고서가 보고서 서버에 게시되고, 런타임에 렌더링되고, 파일 시스템에 저장될 때 적용되는 보고서 크기 제한을 이해할 수 있습니다.Administrators who manage a Reporting ServicesReporting Services deployment can use the information in this topic to understand report size limits when the report is published to a report server, rendered at run time, and saved to the file system. 이 항목에서는 보고서 서버 데이터베이스의 크기를 측정하는 방법에 대한 지침을 제공하고 스냅숏 크기가 서버 성능에 미치는 영향에 대해 설명합니다.This topic also provides practical guidance on how to measure the size of a report server database, and describes the effect of snapshot size on server performance.

게시된 보고서의 최대 크기Maximum Size for Published Reports

보고서 서버에서 보고서 및 모델 크기는 보고서 서버에 게시하는 보고서 정의 파일(.rdl) 및 보고서 모델 파일(.smdl)의 크기를 기반으로 합니다.On the report server, report and model size is based on the size of the report definition (.rdl) and report model (.smdl) files that you publish to a report server. 보고서 서버에서는 사용자가 게시하는 보고서의 크기를 제한하지 않습니다.The report server does not limit the size of a report that you publish. 그러나 MicrosoftMicrosoft ASP.NETASP.NET 에서는 서버에 게시되는 항목에 대한 최대 크기를 제한합니다.However, MicrosoftMicrosoft ASP.NETASP.NET imposes a maximum size for items that are posted to the server. 기본적으로 이 제한은 4MB입니다.By default, this limit is 4 megabytes (MB). 이 제한을 초과하는 파일을 보고서 서버에 업로드하거나 게시하면 HTTP 예외가 발생합니다.If you upload or publish a file that exceeds this limit to a report server, you receive an HTTP exception. 이런 경우 Machine.config 파일에서 maxRequestLength 요소의 값을 늘려 기본값을 수정할 수 있습니다.In this case, you can modify the default by increasing the value of the maxRequestLength element in the Machine.config file.

보고서 모델은 매우 클 수 있지만 보고서 정의는 대부분 4MB를 초과하지 않습니다.Although a report model might be very large, report definitions rarely exceed 4 MB. 일반적인 보고서 크기는 KB 단위입니다.A more typical report size is in the order of kilobytes (KB). 그러나 포함 이미지를 포함시키면 해당 이미지에 대한 인코딩으로 인해 보고서 정의가 4MB의 기본값을 초과할 수 있습니다.However, if you include embedded images, the encoding of those images can result in large report definitions that exceed the 4 MB default.

ASP.NETASP.NET 에서는 게시되는 파일에 대한 최대 제한을 적용하여 서버에 대한 서비스 거부 공격 위협을 줄입니다. imposes a maximum limit on posted files to reduce the threat of denial-of-service attacks against the server. 상한값을 늘리면 이 제한에 따른 보호 기능이 손상됩니다.Increasing the value of the upper limit undermines some of the protection that this limit provides. 따라서 추가 보안 위험을 능가하는 이점이 있다는 확신이 있는 경우에만 이 값을 늘리십시오.Increase the value only if you are confident that the benefit of doing so outweighs any additional security risk.

maxRequestLength 요소에 대해 설정하는 값은 적용하려는 실제 크기 제한보다 커야 합니다.Keep in mind that the value you set for the maxRequestLength element must be larger than the actual size limits you want to enforce. 모든 매개 변수가 SOAP Envelope에 캡슐화되고 Base64 인코딩이 특정 매개 변수에 적용된 후 발생하는 HTTP 요청 크기의 불가피한 증가를 수용하기 위해 더 큰 값을 설정해야 합니다.You need to make the value larger to account for the inevitable increase to the HTTP request size that occurs after all the parameters are encapsulated in a SOAP envelop, and the Base64 encoding is applied to certain. Base64 인코딩은 원래 데이터의 크기를 33% 정도 증가시킵니다.Base64 encoding increases the size of the original data by approximately 33%. 따라서 maxRequestLength 요소에 대해 지정하는 값은 실제로 사용 가능한 항목 크기보다 33% 정도 커야 합니다.Consequently, the value you specify for the maxRequestLength element needs to be approximately 33% larger than the actual usable item size. 예를 들어 maxRequestLength의 값으로 64MB를 지정하는 경우, 실제로 보고서 서버에 게시되는 보고서 파일의 최대 크기를 48MB 정도로 예상할 수 있습니다.For example, if you specify a value of 64 MB for maxRequestLength, realistically you can expect the maximum size for report files that are posted to the report server to be approximately 48 MB.

메모리의 보고서 크기Report Size in Memory

보고서를 실행하면 보고서 크기는 출력 스트림 크기와 보고서에 반환된 데이터 양을 더한 크기가 됩니다.When you run a report, report size is equal to the amount of data that is returned in the report plus the size of the output stream. Reporting ServicesReporting Services 에서는 렌더링되는 보고서의 크기에 대한 최대 제한을 적용하지 않습니다. does not impose a maximum limit on the size of a rendered report. 최대 크기 제한은 시스템 메모리에 따라 결정됩니다. 기본적으로 보고서 서버에서는 보고서를 렌더링할 때 사용 가능한 구성 메모리를 모두 사용하지만 구성 설정을 지정하여 메모리 임계값과 메모리 관리 정책을 지정할 수 있습니다.System memory determines the upper limit on size (by default, a report server uses all available configured memory when rendering a report), but you can specify configuration settings to set memory thresholds and memory management policies. 자세한 내용은 보고서 서버 응용 프로그램을 위한 사용 가능한 메모리 구성을 참조하세요.For more information, see Configure Available Memory for Report Server Applications.

모든 보고서의 크기는 반환되는 데이터 양과 보고서에 사용된 렌더링 형식에 따라 크게 달라질 수 있습니다.For any report, size can vary considerably depending on how much data is returned and which rendering format you use for the report. 매개 변수가 있는 보고서의 크기는 매개 변수 값이 쿼리 결과에 미치는 영향에 따라 커지거나 작아질 수 있습니다.A parameterized report might be larger or smaller depending on how parameter values affect the query results. 선택한 보고서 출력 형식은 다음과 같은 방식으로 보고서 크기에 영향을 줍니다.The report output format you choose effects report size in the following ways:

  • HTML은 보고서를 한 번에 한 페이지씩 처리합니다.HTML processes the report one page at a time. 보고서는 작은 단위로 처리되므로 특정 청크를 처리하는 데 많은 양의 메모리가 필요하지 않습니다.Because the report is processed in smaller units, less memory is required to process specific chunks.

  • PDF, Excel, TIFF, XML 및 CSV는 메모리에 있는 전체 보고서를 처리한 다음 해당 보고서를 사용자에게 표시합니다.PDF, Excel, TIFF, XML, and CSV process the entire report in memory before displaying the report to the user.

    렌더링된 보고서의 크기를 측정하려면 보고서 실행 로그를 확인합니다.To measure the size of a rendered report, you can view the report execution log. 자세한 내용은 보고서 서버 ExecutionLog 및 ExecutionLog3 뷰를 참조하세요.For more information, see Report Server ExecutionLog and the ExecutionLog3 View.

    디스크에 있는 렌더링된 보고서의 크기를 계산하려면 보고서를 파일 시스템으로 내보내고 저장합니다. 저장된 파일에 데이터 및 보고서 형식 정보가 들어 있습니다.To calculate the size of a rendered report on disk, you can export and then save the report to the file system (the saved file includes data and report formatting information).

    Excel 형식으로 렌더링할 때만 보고서 크기가 엄격하게 제한됩니다.The only hard limit on report size is when rendering to Excel format. 워크시트의 행과 열은 각각 65536개와 256개를 초과할 수 없습니다.Worksheets cannot exceed 65536 rows or 256 columns. 다른 렌더링 형식은 이러한 제한이 없으므로 서버에 있는 리소스 양에 의해서만 크기가 제한됩니다.Other rendering formats do not have these limits so size is limited only by the amount of resources on your server.

참고

보고서 처리 및 렌더링은 메모리에서 수행됩니다.Report processing and rendering occur in memory. 보고서가 크거나 사용자 수가 많은 경우에는 보고서 서버 배포가 사용자에게 만족스러운 수준에서 수행될 수 있도록 용량 계획을 세워야 합니다.If you have large reports or large number of users, be sure to do some kind of capacity planning to make sure your report server deployment performs at a level that is satisfactory for your users. 도구 및 지침에 대한 자세한 내용은 MSDN의 Reporting Services의 확장성 및 성능 계획Visual Studio 2005를 사용한 SQL Server 2005 Reporting Services 보고서 서버의 부하 테스트 수행을 참조하십시오.For more information about tools and guidelines, see the following publications on MSDN: Planning for Scalability and Performance with Reporting Services and Using Visual Studio 2005 to Perform Load Testing on a SQL Server 2005 Reporting Services Report Server.

스냅숏 저장소 측정Measuring Snapshot Storage

특정 스냅숏의 크기는 보고서에 있는 데이터 양에 비례합니다.The size of any given snapshot is directly proportional to the amount of data in the report. 스냅숏은 일반적으로 보고서 서버에 저장된 다른 항목보다 훨씬 큽니다.Snapshots are typically much larger than other items that are stored on a report server. 스냅숏 크기는 몇 MB에서 수십 MB에 이르기까지 다양합니다.Snapshot size can typically range from a few megabytes to tens of megabytes. 보고서가 아주 큰 경우 스냅숏은 훨씬 더 커집니다.If you have very large reports, you can expect to see snapshots that are even larger. 스냅숏 사용 빈도와 보고서 기록 구성 방법에 따라 보고서 서버 데이터베이스에 필요한 디스크 공간 크기가 짧은 기간 동안에 빠르게 늘어날 수 있습니다.Depending on how frequently you use snapshots and how you configure report history, the amount of disk space that the report server database requires can increase rapidly over a short period of time.

기본적으로 reportserverreportservertempdb 데이터베이스는 모두 자동 증가로 설정되어 있습니다.By default, both the reportserver and reportservertempdb databases are set to autogrow. 데이터베이스 크기는 자동으로 늘어날 수는 있지만 자동으로 줄어들지는 않습니다.Although the database size can increase automatically, it is never decreased automatically. 스냅숏을 삭제했기 때문에 reportserver 데이터베이스 크기가 너무 큰 경우에는 이 데이터베이스 크기를 직접 줄여서 디스크 공간을 복구해야 합니다.If the reportserver database has excess capacity because you deleted snapshots, you must manually reduce it to recover disk space. 마찬가지로 reportservertempdb 가 크기가 아주 큰 대화형 보고 기능을 사용할 수 있을 만큼 커진 경우에는 사용자가 크기를 줄일 때까지 이 설정으로 디스크 공간 할당이 유지됩니다.Similarly, if the reportservertempdb grew to accommodate an unusually high volume of interactive reporting, the disk space allocation will remain at that setting until you reduce it.

보고서 서버 데이터베이스의 크기를 측정하려면 다음 Transact-SQLTransact-SQL 명령을 실행합니다.To measure the size of the report server databases, you can run the following Transact-SQLTransact-SQL commands. 정기적으로 총 데이터베이스 크기를 계산하면 시간에 따른 보고서 서버 데이터베이스의 공간 할당량을 적절히 예측하는 데 도움이 됩니다.Calculating total database size at regular intervals can help you develop reasonable estimates of how to allocate space for the report server database over time. 다음 문은 현재 사용하고 있는 공간을 측정합니다. 이 문에서는 사용자가 기본 데이터베이스 이름을 사용하고 있다고 가정합니다.The following statements measure the amount of space that that is currently used (the statements assume you are using default database names):

USE ReportServer  
EXEC sp_spaceused  

스냅숏 크기 및 보고서 서버 성능Snapshot Size and Report Server Performance

스냅숏 크기는 보고서가 처리되고 렌더링될 때 서버 성능에 영향을 줍니다.Snapshot size affects server performance when the report is processed and rendered. 서버 성능은 대부분 렌더링 작업의 영향을 받으므로 스냅숏이 큰 경우에는 사용자가 보고서를 요청할 때 지연이 발생할 수 있습니다.Server performance is most affected by rendering operations, so if you have a large snapshot you can expect some delay when users request the report. 사용자 수에 따라 스냅숏 크기가 100MB 이상이면 지연이 발생할 수 있습니다.Depending on the number of users, you can expect to encounter delays when snapshot size is over 100 megabytes.

큰 스냅숏으로 인한 성능 지연을 최소화하려면 다음을 수행합니다.To minimize performance delays due to large snapshots, you can do the following:

  • 보고서 서버와 SQL Server 데이터베이스 엔진SQL Server Database Engine 을 별도의 컴퓨터에 배포합니다.Deploy the report server and the SQL Server 데이터베이스 엔진SQL Server Database Engine on separate computers.

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

  • 회사의 보고서 서버를 구성하는 방법에 대한 유용한 정보를 보려면 MSDN 웹 사이트에서 "Reporting Services의 확장성 및 성능 계획(Planning for Scalability and Performance with Reporting Services)" 문서를 검토하십시오.Review the "Planning for Scalability and Performance with Reporting Services" document on the MSDN Web site for best practices on how to configure a report server for the enterprise.

    보고서 서버 데이터베이스에 저장되어 있는 스냅숏의 수량 자체는 성능에 영향을 주지 않습니다.The quantity of snapshots that are stored in a report server database is, by itself, not a performance factor. 서버 성능에 영향을 주지 않고 수많은 스냅숏을 저장할 수 있습니다.You can store a large number of snapshots without affecting server performance. 스냅숏은 무제한으로 보관할 수 있습니다.You can keep snapshots indefinitely. 그러나 보고서 기록은 구성할 수 있습니다.However, be aware that report history is configurable. 보고서 서버 관리자가 보고서 기록 제한을 낮추면 보관하려고 한 기록 보고서가 손실될 수 있습니다.If a report server administrator lowers the report history limit, you might lose historical reports that you intended to keep. 보고서를 삭제하면 모든 보고서 기록도 함께 삭제됩니다.If you delete the report, all report history is deleted with it.

관련 항목:See Also

보고서 처리 속성 설정 Set Report Processing Properties
보고서 서버 데이터베이스 ( SSRS 기본 모드 ) Report Server Database (SSRS Native Mode)
큰 보고서 처리Process Large Reports