Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Nicht genügend Arbeitsspeicher-Ausnahme in SQL 2008

Laut einem wirklich ziemlich guten Microsoft Knowledge Base-Artikel (hier verlinkt) Dies wird durch eine Abfrage verursacht, die mehr zugewiesenen RAM erfordert, als verfügbar ist.

Mit anderen Worten, Sie benötigen mehr RAM oder Sie müssen die Abfrage neu entwerfen, um den Prozess in kleinere Teile aufzuteilen.

Dies ist eine Zusammenfassung des vollständigen Artikels. Das Original enthält Links zu Inhalten, um den Prozess, mit dem Sie ihren Vorschlägen folgen sollten, ausführlicher zu erläutern.

Sie erhalten möglicherweise die Fehlermeldung "System.OutOfMemoryException", wenn Sie SQL Server Reporting Services verwenden

Wenden Sie eine der folgenden Methoden an, um dieses Problem zu beheben.

Methode 1

Fügen Sie dem Computer ausreichend physischen Arbeitsspeicher hinzu.

Hinweis Wenn Sie über mehr als 2 Gigabyte (GB) Arbeitsspeicher verfügen, können Sie für eine bessere Leistung den Schalter /3GB in der Datei Boot.ini aktivieren. Weitere Informationen zur Verwendung des Schalters /3GB in SQL Server.

Methode 2

Planen Sie Berichte so, dass sie außerhalb der Geschäftszeiten ausgeführt werden, wenn die Speicherbeschränkungen geringer sind.

Methode 3

Passen Sie die MemoryLimit-Einstellung entsprechend an.

Hinweis:Wenn Sie einen Bericht über den Reporting Services-Webdienst rendern, erhält der Reporting Services-Webdienst die MemoryLimit-Einstellung aus der Datei Machine.config. Ein geplanter Bericht wird jedoch vom Berichtsserver-Windows-Dienst gerendert. Der Berichtsserver-Windows-Dienst erhält die Einstellung „MemoryLimit“ aus der Datei „RSReportServer.config“.

Methode 4

Führen Sie ein Upgrade auf eine 64-Bit-Version von Microsoft SQL Server 2005 Reporting Services durch, damit Reporting Services mehr Arbeitsspeicher verwenden kann.

Methode 5

Gestalten Sie den Bericht neu. Verwenden Sie dazu eine der folgenden Methoden.

Gestalten Sie die Berichtsabfragen neu. Sie können den Speicherverbrauch reduzieren, indem Sie die Berichtsabfragen wie folgt neu gestalten:

  • Geben Sie weniger Daten in den Berichtsabfragen zurück.
  • Verwenden Sie eine bessere Einschränkung für die WHERE-Klausel der Berichtsabfragen.
  • Verschieben Sie komplexe Aggregationen in die Datenquelle.

Methode B

Exportieren Sie den Bericht in ein anderes Format. Sie können den Speicherverbrauch reduzieren, indem Sie ein anderes Format zum Anzeigen des Berichts verwenden.

Methode C

Vereinfachen Sie das Berichtsdesign.

Sie können den Speicherverbrauch reduzieren, indem Sie das Berichtsdesign auf folgende Weise vereinfachen:

  • Fügen Sie weniger Datenbereiche oder Steuerelemente in den Bericht ein.
  • Verwenden Sie einen Drillthrough-Bericht, um Details anzuzeigen.