Limiti relativi alle dimensioni dei report e degli snapshot
Amministrazione istrator che gestiscono una distribuzione di Reporting Services possono usare le informazioni contenute in questo articolo per comprendere i limiti delle dimensioni del report quando il report viene pubblicato in un server di report, sottoposto a rendering in fase di esecuzione e salvato nel file system. Questo articolo fornisce anche indicazioni pratiche su come misurare le dimensioni di un database del server di report e descrive l'effetto delle dimensioni dello snapshot sulle prestazioni del server.
Dimensioni massime per i report pubblicati
Nel server di report, le dimensioni del report e del modello si basano 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. Il server di report non limita le dimensioni di un report pubblicato. Microsoft ASP.NET prevede comunque una dimensione massima per gli elementi inviati al server. Per impostazione predefinita, questo limite è di 4 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. In questo caso, è possibile modificare l'impostazione predefinita aumentando il valore dell'elemento maxRequestLength
nel Machine.config
file.
Anche se un modello di report potrebbe essere di grandi dimensioni, le definizioni del report superano raramente 4 MB. In genere, un report ha dimensioni di alcuni kilobyte (KB). Tuttavia, se si includono immagini incorporate, la codifica di tali immagini può comportare definizioni di report di grandi dimensioni che superano il valore predefinito di 4 MB.
ASP.NET prevede un limite massimo per i file inviati al fine di ridurre i rischi di attacchi Denial of Service contro il server. Aumentando il valore, vengono ridotte le capacità di sicurezza garantite da questa limitazione. Aumentare il valore solo se si è certi che il vantaggio di farlo supera qualsiasi altro rischio di sicurezza.
Si tenga presente che il valore impostato per l'elemento maxRequestLength
deve essere maggiore dei limiti effettivi delle dimensioni che si desidera applicare. Per tenere conto dell'inevitabile aumento delle dimensioni delle richieste HTTP, aumentare il valore. Questo aumento si verifica dopo l'incapsulamento di tutti i parametri in una busta SOAP e l'applicazione della codifica Base64. Con la codifica Base64 le dimensioni dei dati originali vengono aumentate di circa il 33%. Pertanto, il valore specificato per l'elemento deve essere di circa il maxRequestLength
33% maggiore delle dimensioni effettive dell'elemento utilizzabile. 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.
Dimensioni dei report in memoria
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. Reporting Services non impone un limite massimo per le dimensioni di un report sottoposto a rendering. La memoria di sistema determina il limite massimo per le dimensioni. Per impostazione predefinita, un server di report usa tutta la memoria configurata disponibile durante il rendering di un report. È tuttavia possibile specificare le impostazioni di configurazione per impostare le soglie di memoria e i criteri di gestione della memoria. Per altre informazioni, vedere Configurare la memoria disponibile per le applicazioni del server di report.
Le dimensioni di qualsiasi report possono variare significativamente in base alla quantità di dati restituiti e al formato di rendering utilizzato. Le dimensioni di un report con parametri possono variare in base a come i valori dei parametri influiscono sui risultati della query. Il formato di output scelto per il report influisce sulle dimensioni del report in base a quanto indicato di seguito:
Con il formato HTML il report viene elaborato una pagina alla volta. Poiché il report viene elaborato in unità di dimensioni minori, per l'elaborazione di blocchi specifici è richiesta una quantità di memoria inferiore.
Con i formati PDF, Excel, TIFF, XML e CSV l'intero report viene elaborato in memoria prima di essere visualizzato all'utente.
Per calcolare le dimensioni di un report visualizzabile, è possibile analizzare il log di esecuzione del report. Per altre informazioni, vedere Report server ExecutionLog e la vista ExecutionLog3.
Per calcolare le dimensioni di un report sottoposto a rendering su disco, è possibile esportare e quindi salvare il report nel file system. Il file salvato include informazioni sulla formattazione dei dati e del report.
L'unico caso in cui vi è un limite fisico per le dimensioni del report è quando si esegue il rendering in formato Excel. I fogli di lavoro non possono superare 65.536 righe o 256 colonne. Altri formati di rendering non hanno questi limiti, pertanto le dimensioni sono limitate solo dalla quantità di risorse nel server.
Nota
I processi di elaborazione e rendering dei report avvengono in memoria. 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. Per altre informazioni su strumenti e linee guida, vedere le pubblicazioni seguenti su MSDN: Pianificare scalabilità e prestazioni con Reporting Services e Usare Visual Studio 2005 per eseguire test di carico in un server di report di SQL Server 2005 Reporting Services.
Misurare l'archiviazione snapshot
Le dimensioni di un determinato snapshot sono direttamente proporzionali alla quantità di dati del report. Gli snapshot hanno in genere dimensioni molto maggiori rispetto agli altri elementi archiviati in un server di report. Le dimensioni degli snapshot variano in genere da pochi MB a decine di MB. Se si dispone di report di grandi dimensioni, è possibile prevedere che gli snapshot siano ancora più grandi. La quantità di spazio su disco richiesta dal database del server di report può aumentare rapidamente in un breve periodo di tempo. La quantità di spazio su disco aumenta dipende dalla frequenza di utilizzo degli snapshot e dalla modalità di configurazione della cronologia dei report.
Per impostazione predefinita, sia per il database reportserver che per il database reportservertempdb è impostato l'aumento automatico delle dimensioni. Anche se le dimensioni del database possono aumentare automaticamente, le dimensioni non vengono mai ridotte automaticamente. Se nel database reportserver è presente capacità in eccesso in quanto sono stati eliminati snapshot, per recuperare spazio su disco è necessario ridurre il database manualmente. Analogamente, se reportservertempdb è cresciuto per contenere un volume insolitamente elevato di report interattivi, l'allocazione dello spazio su disco rimane in tale impostazione fino a quando non viene ridotto.
Per calcolare le dimensioni dei database del server di report, è possibile eseguire i comandi di Transact-SQL riportati di seguito. 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. Le istruzioni seguenti misurano la quantità di spazio attualmente utilizzata. Le istruzioni presuppongono che si usino nomi di database predefiniti:
USE ReportServer
EXEC sp_spaceused
Dimensioni snapshot e prestazioni del server di report
Le dimensioni degli snapshot influiscono sulle prestazioni del server in fase di elaborazione e rendering del report. 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. A seconda del numero di utenti, i ritardi si verificano con maggiore probabilità quando le dimensioni dello snapshot superano i 100 MB.
Per ridurre al minimo i ritardi delle prestazioni dovuti a snapshot di grandi dimensioni, completare la procedura seguente:
Distribuire il server di report e il motore di database di SQL Server in computer separati.
Aggiungere ulteriore memoria di sistema.
Vedere il documento "Planning for Scalability and Performance with Reporting Services" (Pianificazione della scalabilità e delle prestazioni con Reporting Services) nel sito Web MSDN per le procedure consigliate su come configurare un server di report per l'organizzazione.
La quantità di snapshot archiviati in un database del server di report non è un fattore che influisce sulle prestazioni. È possibile archiviare un numero elevato di snapshot senza influenzare le prestazioni del server, nonché mantenere gli snapshot per un periodo illimitato. Tuttavia, la cronologia del report è configurabile. 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. Se si elimina il report, viene eliminata anche tutta la relativa cronologia.
Contenuto correlato
Impostare le proprietà di elaborazione dei report
Database del server di report (modalità nativa SSRS)
Elaborare report di grandi dimensioni
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Invia e visualizza il feedback per