Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Eccezione di memoria insufficiente in SQL 2008

Secondo un ottimo articolo della knowledge base Microsoft (collegato qui) ciò è causato da una query che richiede più RAM allocata di quella disponibile.

In altre parole, hai bisogno di più RAM o devi riprogettare la query per suddividere il processo in blocchi più piccoli.

Questo è un riassunto dell'articolo completo. L'originale contiene collegamenti a contenuti per spiegare più in dettaglio il processo mediante il quale dovresti seguire i loro suggerimenti.

Potresti ricevere il messaggio di errore "System.OutOfMemoryException" quando utilizzi SQL Server Reporting Services

Per risolvere questo problema, utilizza uno dei seguenti metodi.

Metodo 1

Aggiungi memoria fisica sufficiente al computer.

Nota Se si dispone di più di 2 gigabyte (GB) di memoria, è possibile abilitare l'opzione /3GB nel file Boot.ini per prestazioni migliori. Per ulteriori informazioni su come utilizzare l'opzione /3GB in SQL Server.

Metodo 2

Pianifica l'esecuzione dei rapporti fuori orario quando i limiti di memoria sono inferiori.

Metodo 3

Regola di conseguenza l'impostazione MemoryLimit.

Nota:quando si esegue il rendering di un report tramite il servizio Web di Reporting Services, il servizio Web di Reporting Services ottiene l'impostazione MemoryLimit dal file Machine.config. Tuttavia, il rendering di un report pianificato viene eseguito dal servizio Windows Report Server. Il servizio Windows ReportServer ottiene l'impostazione MemoryLimit dal file RSReportServer.config.

Metodo 4

Esegui l'aggiornamento a una versione a 64 bit di Microsoft SQL Server 2005 Reporting Services per consentire a Reporting Services di utilizzare più memoria.

Metodo 5

Ridisegna il rapporto. A tale scopo, utilizza uno dei seguenti metodi.

Ridisegna le query del rapporto. Puoi ridurre il consumo di memoria riprogettando le query del rapporto nei seguenti modi:

  • Restituisci meno dati nelle query del rapporto.
  • Utilizza una restrizione migliore sulla clausola WHERE delle query del rapporto.
  • Sposta aggregazioni complesse nell'origine dati.

Metodo B

Esporta il rapporto in un formato diverso. È possibile ridurre il consumo di memoria utilizzando un formato diverso per visualizzare il report.

Metodo C

Semplifica la progettazione del rapporto.

Puoi ridurre il consumo di memoria semplificando la progettazione del rapporto nei seguenti modi:

  • Includi meno aree dati o controlli nel rapporto.
  • Utilizza un rapporto drill-through per visualizzare i dettagli.