2011-01-11 16 views
5

Im Hinblick auf die Nicht genügend Speicher Ausnahme in SQL Server 2008:Nicht genügend Speicher Ausnahme in SQL 2008

Wenn ich große Abfrage auszuführen, die Tausende von Zeilen in eine Tabelle einfügt,

Die Ausnahme, die bei dieser Ausführung auftritt ist "System.OutOfMemoryException".

+0

Benötigen Sie weitere Informationen? Was machst du, was das Problem verursacht? –

+1

'System.OutOfMemoryException' ist eine' .NET' Ausnahme, was bedeutet, dass sie wahrscheinlich von Ihrem Client (SSMS) ausgelöst wird. Versuchen Sie, die Datei in kleinere Abschnitte aufzuteilen oder ein anderes Dienstprogramm zum Ausführen der Abfrage zu verwenden. –

Antwort

4

Nach einem wirklich sehr guten Microsoft Knowledge Base Artikel (linked here) wird dies durch eine Abfrage verursacht, die mehr RAM benötigt, 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 Stücke 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 erklären.

Blockquote: MS Knowledge Base-Artikel 909678

Sie können die "System.OutOfMemoryException" Fehlermeldung, wenn Sie SQL Server Reporting Services

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

Methode 1

an den Computer ausreichend physischen Speicher hinzufügen.

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

Methode 2

Schedule Berichte off-Stunden laufen, wenn Speicherbeschränkungen niedriger sind.

Methode 3

die Memoryeinstellung entsprechend einstellen.

Hinweis: Wenn Sie einen Bericht über den Reporting Services-Webdienst rendern, ruft der Reporting Services-Webdienst die Einstellung MemoryLimit aus der Datei Machine.config ab. Ein geplanter Bericht wird jedoch vom Windows Server-Dienst Report Server gerendert. Der Berichtsserver-Windows-Dienst ruft die Einstellung von MemoryLimit aus der RSReportServer.config-Datei ab.

Methode 4

Upgrade auf eine 64-Bit-Version von Microsoft SQL Server 2005 Reporting Services Reporting Services zu ermöglichen mehr Speicher zu nutzen.

Methode 5

den Bericht Redesign. Wenden Sie eine der folgenden Methoden zu Zweck an.

Redesign der Berichtsabfragen. Sie können den Speicherbedarf eine Umkonstruktion der Berichtsabfragen in den folgendermaßen reduzieren:

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

Methode B

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

Methode C

den Bericht Design vereinfachen.

Sie können den Speicherverbrauch durch Vereinfachung des Berichtsdesign auf folgende Weise reduzieren:

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

Dies sollte ein Kommentar sein, keine Antwort – JonH

+0

Danke @JonH. Ich bin neu in all dem. :) – zenbike

+2

-1 Irrelevant. Sie machen eine Einfügeabfrage. nichts mit Reporting Services zu tun. –

-1

Das ist das Problem mit Ihrer Protokolldatei.

Verwenden Sie so inser intoselect into Anweisung.

Verwandte Themen