sql >> Databasteknik >  >> RDS >> Sqlserver

Minnet är fullt undantag i SQL 2008

Enligt en riktigt bra Microsoft kunskapsbasartikel (länkad här) detta orsakas av en fråga som kräver mer RAM tilldelat än vad som är tillgängligt.

Med andra ord behöver du mer RAM, eller så måste du designa om frågan för att dela upp processen i mindre bitar.

Detta är en sammanfattning av hela artikeln. Originalet innehåller länkar till innehåll för att mer detaljerat förklara processen genom vilken du bör följa deras förslag.

Du kan få felmeddelandet "System.OutOfMemoryException" när du använder SQL Server Reporting Services

För att lösa det här problemet, använd någon av följande metoder.

Metod 1

Lägg till tillräckligt med fysiskt minne till datorn.

Obs! Om du har mer än 2 gigabyte (GB) minne kan du aktivera växeln /3GB i filen Boot.ini för bättre prestanda. För mer information om hur du använder /3GB-växeln i SQL Server.

Metod 2

Schemalägg rapporter så att de körs under öppettider när minnesbegränsningarna är lägre.

Metod 3

Justera MemoryLimit-inställningen därefter.

Obs! När du gör en rapport via webbtjänsten Reporting Services, hämtar webbtjänsten Reporting Services inställningen MemoryLimit från filen Machine.config. En schemalagd rapport återges dock av Report Server Windows-tjänsten. Report Server Windows-tjänsten hämtar MemoryLimit-inställningen från filen RSReportServer.config.

Metod 4

Uppgradera till en 64-bitarsversion av Microsoft SQL Server 2005 Reporting Services för att tillåta Reporting Services att använda mer minne.

Metod 5

Gör om rapporten. För att göra detta, använd någon av följande metoder.

Gör om rapportfrågorna. Du kan minska minnesförbrukningen genom att designa om rapportfrågorna på följande sätt:

  • Returnera mindre data i rapportfrågorna.
  • Använd en bättre begränsning av WHERE-satsen i rapportfrågorna.
  • Flytta komplexa aggregationer till datakällan.

Metod B

Exportera rapporten till ett annat format. Du kan minska minnesförbrukningen genom att använda ett annat format för att visa rapporten.

Metod C

Förenkla rapportdesignen.

Du kan minska minnesförbrukningen genom att förenkla rapportdesignen på följande sätt:

  • Inkludera färre dataregioner eller kontroller i rapporten.
  • Använd en genomgående rapport för att visa detaljer.


  1. Hur man lagrar urvalsresultat till variabel i Oracle-proceduren

  2. Konvertera 'smalldatetime' till 'datetimeoffset' i SQL Server (T-SQL-exempel)

  3. SqlFunction kan inte öppna kontextanslutning trots att DataAccessKind.Read finns

  4. Hämtar kolumninformation (sammansatt nyckel) i SQL