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

Ude af hukommelse undtagelse i SQL 2008

Ifølge en rigtig god Microsoft videnbase-artikel (linket her) dette forårsaget af en forespørgsel, der kræver mere tildelt RAM, end der er tilgængeligt.

Med andre ord, du har brug for mere RAM, eller du skal redesigne forespørgslen for at dele processen op i mindre bidder.

Dette er et resumé af hele artiklen. Originalen indeholder links til indhold for at forklare mere detaljeret, hvordan du skal følge deres forslag.

Du modtager muligvis fejlmeddelelsen "System.OutOfMemoryException", når du bruger SQL Server Reporting Services

For at løse dette problem skal du bruge en af ​​følgende metoder.

Metode 1

Tilføj tilstrækkelig fysisk hukommelse til computeren.

Bemærk Hvis du har mere end 2 gigabyte (GB) hukommelse, kan du aktivere /3GB-omskifteren i filen Boot.ini for at få bedre ydeevne. For mere information om, hvordan du bruger /3GB-switchen i SQL Server.

Metode 2

Planlæg rapporter til at køre uden for arbejdstid, når hukommelsesbegrænsningerne er lavere.

Metode 3

Juster MemoryLimit-indstillingen i overensstemmelse hermed.

Bemærk:Når du gengiver en rapport gennem Reporting Services-webtjenesten, henter Reporting Services-webtjenesten MemoryLimit-indstillingen fra filen Machine.config. En planlagt rapport gengives dog af Report Server Windows-tjenesten. Report Server Windows-tjenesten henter MemoryLimit-indstillingen fra filen RSReportServer.config.

Metode 4

Opgrader til en 64-bit version af Microsoft SQL Server 2005 Reporting Services for at tillade Reporting Services at bruge mere hukommelse.

Metode 5

Redesign rapporten. For at gøre dette skal du bruge en af ​​følgende metoder.

Redesign rapportforespørgslerne. Du kan reducere hukommelsesforbruget ved at omdesigne rapportforespørgslerne på følgende måder:

  • Returnering af færre data i rapportforespørgslerne.
  • Brug en bedre begrænsning på WHERE-klausulen i rapportforespørgslerne.
  • Flyt komplekse sammenlægninger til datakilden.

Metode B

Eksporter rapporten til et andet format. Du kan reducere hukommelsesforbruget ved at bruge et andet format til at vise rapporten.

Metode C

Forenkle rapportdesignet.

Du kan reducere hukommelsesforbruget ved at forenkle rapportdesignet på følgende måder:

  • Medtag færre dataområder eller kontrolelementer i rapporten.
  • Brug en bor-gennem-rapport til at vise detaljer.


  1. DESC og ASC som parameter i lagret procedure

  2. Sådan bruges OBJECT_ID() på krydsdatabaseobjekter i SQL Server

  3. MYSQL:DECIMAL med en nøjagtighed på 10 cifre efter kommaet

  4. 7 vigtige ting at huske om datamodel globalisering