Limiti delle dimensioni di report e snapshotReport and Snapshot Size Limits

Le informazioni contenute in questo argomento consentono agli amministratori che gestiscono una distribuzione di Reporting ServicesReporting Services di conoscere i limiti relativi alle dimensioni dei report quando questi ultimi vengono pubblicati in un server di report, quando ne viene eseguito il rendering in fase di esecuzione e quando vengono salvati nel file system.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. In questo argomento vengono inoltre fornite indicazioni pratiche su come calcolare le dimensioni di un database del server di report e vengono descritti gli effetti delle dimensioni degli snapshot sulle prestazioni del server.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.

Dimensioni massime per i report pubblicatiMaximum Size for Published Reports

Nel server di report le dimensioni dei report e dei modelli sono basate sulle dimensioni dei file di definizione del report, con estensione rdl, e del modello di report, con estensione smdl, pubblicati in un server di report.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. Il server di report non prevede limiti per le dimensioni di un report da pubblicare.The report server does not limit the size of a report that you publish. MicrosoftMicrosoft ASP.NETASP.NET prevede comunque una dimensione massima per gli elementi inviati al server.However, MicrosoftMicrosoft ASP.NETASP.NET imposes a maximum size for items that are posted to the server. Per impostazione predefinita, questo limite è di 4 MB.By default, this limit is 4 megabytes (MB). Se si carica o si pubblica in un server di report un file le cui dimensioni superano questo limite, viene generata un'eccezione HTTP.If you upload or publish a file that exceeds this limit to a report server, you receive an HTTP exception. In questo caso, è possibile modificare l'impostazione predefinita aumentando il valore dell'elemento maxRequestLength nel file Machine.config.In this case, you can modify the default by increasing the value of the maxRequestLength element in the Machine.config file.

Sebbene un modello di report possa avere dimensioni molto grandi, le definizioni dei report non superano quasi mai i 4 MB.Although a report model might be very large, report definitions rarely exceed 4 MB. In genere, un report ha dimensioni di alcuni kilobyte (KB).A more typical report size is in the order of kilobytes (KB). Se tuttavia sono presenti immagini incorporate, la codifica di tali immagini può determinare un aumento considerevole delle dimensioni della definizione del report e, di conseguenza, il superamento del limite predefinito di 4 MB.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 prevede un limite massimo per i file inviati al fine di ridurre i rischi di attacchi Denial of Service contro il server. imposes a maximum limit on posted files to reduce the threat of denial-of-service attacks against the server. Aumentando il valore, vengono ridotte le capacità di sicurezza garantite da questa limitazione.Increasing the value of the upper limit undermines some of the protection that this limit provides. È pertanto consigliabile aumentarlo solo se i vantaggi che questa modifica comporta bilanciano i maggiori rischi a cui viene esposto il sistema di sicurezza.Increase the value only if you are confident that the benefit of doing so outweighs any additional security risk.

Si tenga presente che il valore impostato per l'elemento maxRequestLength deve essere maggiore dei limiti effettivi delle dimensioni che si desidera applicare.Keep in mind that the value you set for the maxRequestLength element must be larger than the actual size limits you want to enforce. È necessario un valore più grande per tener conto dell'inevitabile aumento delle dimensioni della richiesta HTTP che si verifica dopo che tutti i parametri vengono incapsulati in una busta SOAP e ad alcuni di essi viene applicata la codifica Base64.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. Con la codifica Base64 le dimensioni dei dati originali vengono aumentate di circa il 33%.Base64 encoding increases the size of the original data by approximately 33%. Di conseguenza, il valore specificato per l'elemento maxRequestLength deve essere di circa il 33% maggiore delle dimensioni effettive dell'elemento utilizzabile.Consequently, the value you specify for the maxRequestLength element needs to be approximately 33% larger than the actual usable item size. Ad esempio, se si specifica un valore pari a 64 MB per maxRequestLength, è possibile prevedere realisticamente che le dimensioni massime dei file di report inviati al server di report saranno di circa 48 MB.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.

Dimensioni dei report in memoriaReport Size in Memory

Quando si esegue un report, le dimensioni di quest'ultimo corrispondono alla quantità di dati restituiti nel report più le dimensioni del flusso di output.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 non è previsto un limite massimo per le dimensioni di un report visualizzabile. does not impose a maximum limit on the size of a rendered report. La memoria del sistema determina il limite superiore per le dimensioni (per impostazione predefinita, in caso di esecuzione il rendering di un report un server di report utilizza tutta la memoria configurata disponibile), ma è possibile specificare impostazioni di configurazione per impostare soglie di memoria e criteri della gestione della memoria.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. Per altre informazioni, vedere Configurare la memoria disponibile per applicazioni del server di report.For more information, see Configure Available Memory for Report Server Applications.

Le dimensioni di qualsiasi report possono variare significativamente in base alla quantità di dati restituiti e al formato di rendering utilizzato.For any report, size can vary considerably depending on how much data is returned and which rendering format you use for the report. Le dimensioni di un report con parametri possono variare in base a come i valori dei parametri influiscono sui risultati della query.A parameterized report might be larger or smaller depending on how parameter values affect the query results. Il formato di output scelto per il report influisce sulle dimensioni del report in base a quanto indicato di seguito:The report output format you choose effects report size in the following ways:

  • Con il formato HTML il report viene elaborato una pagina alla volta.HTML processes the report one page at a time. Poiché il report viene elaborato in unità di dimensioni minori, per l'elaborazione di blocchi specifici è richiesta una quantità di memoria inferiore.Because the report is processed in smaller units, less memory is required to process specific chunks.

  • Con i formati PDF, Excel, TIFF, XML e CSV l'intero report viene elaborato in memoria prima di essere visualizzato all'utente.PDF, Excel, TIFF, XML, and CSV process the entire report in memory before displaying the report to the user.

    Per calcolare le dimensioni di un report visualizzabile, è possibile analizzare il log di esecuzione del report.To measure the size of a rendered report, you can view the report execution log. Per altre informazioni, vedere Vista ExecutionLog ed ExecutionLog3 del server di report.For more information, see Report Server ExecutionLog and the ExecutionLog3 View.

    Per calcolare le dimensioni su disco di un report visualizzabile, è possibile esportare e quindi salvare il report nel file system. Il file salvato includerà le informazioni di formattazione dei dati e del report.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).

    L'unico caso in cui vi è un limite fisico per le dimensioni del report è quando si esegue il rendering in formato Excel.The only hard limit on report size is when rendering to Excel format. Nei fogli di lavoro non possono essere presenti più di 65536 righe o 256 colonne.Worksheets cannot exceed 65536 rows or 256 columns. Con altri formati di rendering non sono presenti limiti simili, pertanto le dimensioni sono limitate solo dalla quantità di risorse disponibili nel server.Other rendering formats do not have these limits so size is limited only by the amount of resources on your server.

Nota

I processi di elaborazione e rendering dei report avvengono in memoria.Report processing and rendering occur in memory. Se si utilizzano report di grandi dimensioni o sono presenti numerosi utenti, eseguire una pianificazione delle capacità per garantire agli utenti un livello soddisfacente di prestazioni della distribuzione del server di report.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. Per altre informazioni su strumenti e linee guida, vedere le pubblicazioni seguenti su MSDN: Pianificazione di scalabilità e prestazioni con Reporting Services e Uso di Visual Studio 2005 per eseguire test di carico in un server di report di 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.

Calcolo dello spazio di archiviazione degli snapshotMeasuring Snapshot Storage

Le dimensioni di un determinato snapshot sono direttamente proporzionali alla quantità di dati del report.The size of any given snapshot is directly proportional to the amount of data in the report. Gli snapshot hanno in genere dimensioni molto maggiori rispetto agli altri elementi archiviati in un server di report.Snapshots are typically much larger than other items that are stored on a report server. Le dimensioni degli snapshot variano in genere da pochi MB a decine di MB.Snapshot size can typically range from a few megabytes to tens of megabytes. Se si dispone di report di dimensioni molto grandi, le dimensioni degli snapshot potrebbero essere anche maggiori.If you have very large reports, you can expect to see snapshots that are even larger. In base alla frequenza di utilizzo degli snapshot e alla modalità di configurazione della cronologia del report, la quantità di spazio su disco necessaria per il database del server di report può aumentare rapidamente in un intervallo di tempo breve.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.

Per impostazione predefinita, sia per il database reportserver che per il database reportservertempdb è impostato l'aumento automatico delle dimensioni.By default, both the reportserver and reportservertempdb databases are set to autogrow. Le dimensioni del database possono aumentare automaticamente ma non vengono mai ridotte automaticamente.Although the database size can increase automatically, it is never decreased automatically. Se nel database reportserver è presente capacità in eccesso in quanto sono stati eliminati snapshot, per recuperare spazio su disco è necessario ridurre il database manualmente.If the reportserver database has excess capacity because you deleted snapshots, you must manually reduce it to recover disk space. Analogamente, se le dimensioni del database reportservertempdb sono aumentate per adattarsi a un volume insolitamente elevato di report interattivi, l'allocazione dello spazio su disco rimane impostata in base a quei valori fino a quando non la si riduce.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.

Per calcolare le dimensioni dei database del server di report, è possibile eseguire i comandi Transact-SQLTransact-SQL riportati di seguito.To measure the size of the report server databases, you can run the following Transact-SQLTransact-SQL commands. Il calcolo delle dimensioni totali del database a intervalli regolari può agevolare lo sviluppo di una stima ragionevole delle modalità di allocazione nel tempo dello spazio per il database del server di report.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. Le istruzioni seguenti consentono di calcolare la quantità di spazio attualmente in uso e presuppongono l'utilizzo dei nomi di database predefiniti: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  

Dimensioni degli snapshot e prestazioni del server di reportSnapshot Size and Report Server Performance

Le dimensioni degli snapshot influiscono sulle prestazioni del server in fase di elaborazione e rendering del report.Snapshot size affects server performance when the report is processed and rendered. Le prestazioni del server sono influenzate soprattutto dalle operazioni di rendering, pertanto se le dimensioni dello snapshot sono elevate, è probabile che si verifichino ritardi quando gli utenti richiedono il report.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. A seconda del numero di utenti, i ritardi si verificano con maggiore probabilità quando le dimensioni dello snapshot superano i 100 MB.Depending on the number of users, you can expect to encounter delays when snapshot size is over 100 megabytes.

Per ridurre al minimo i ritardi nelle prestazioni dovuti a snapshot di grandi dimensioni, è possibile eseguire le operazioni seguenti:To minimize performance delays due to large snapshots, you can do the following:

  • Distribuire il server di report e Motore di database di SQL ServerSQL Server Database Engine in computer separati.Deploy the report server and the Motore di database di SQL ServerSQL Server Database Engine on separate computers.

  • Aggiungere ulteriore memoria di sistema.Add more system memory.

  • Vedere il documento relativo alla pianificazione di scalabilità e prestazioni con Reporting Services nel sito Web MSDN per informazioni sulle procedure consigliate per la configurazione di un server di report per l'organizzazione.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.

    La quantità di snapshot archiviati in un database del server di report non è un fattore che influisce sulle prestazioni.The quantity of snapshots that are stored in a report server database is, by itself, not a performance factor. È possibile archiviare un numero elevato di snapshot senza influenzare le prestazioni del server,You can store a large number of snapshots without affecting server performance. nonché mantenere gli snapshot per un periodo illimitato.You can keep snapshots indefinitely. Tenere tuttavia presente che la cronologia del report può essere modificata.However, be aware that report history is configurable. Se un amministratore del server di report riduce il limite per la cronologia del report, si potrebbero perdere snapshot presenti nella cronologia che si desiderava mantenere.If a report server administrator lowers the report history limit, you might lose historical reports that you intended to keep. Se si elimina il report, viene eliminata anche tutta la relativa cronologia.If you delete the report, all report history is deleted with it.

Vedere ancheSee Also

Impostare proprietà di elaborazione dei report Set Report Processing Properties
Database del server di report (modalità nativa SSRS) Report Server Database (SSRS Native Mode)
Elaborare report di grandi dimensioniProcess Large Reports