Im Ressourcenpool ist nicht genügend Systemspeicher vorhanden, um diese Abfrage auszuführen


15

Ich verwende SQL Server 2014 - 12.0.2269.0 (X64) unter Windows Server 2012 und habe einige Speicherprobleme. Wenn ich eine gespeicherte Prozedur ausführe, die eine ziemlich "schwere" Berechnung durchführt, erhalte ich nach etwa 10 Minuten eine Fehlermeldung:

Der 'Standard'-Ressourcenpool verfügt nicht über genügend Systemspeicher, um diese Abfrage auszuführen.

Mein SQL Server verfügt über mehrere Datenbanken (z. B. 15, die jedoch nicht immer gleichzeitig verwendet werden). Ich habe in der SQL Server-Protokolldatei nachgesehen (nachdem ich den Fehler erhalten habe) und viele Zeilen wie die folgende gesehen:

2015-12-17 12: 00: 37.57 spid19s Sperren der Seitenzuordnungen für die Datenbank 'Database_Name' aufgrund von unzureichendem Arbeitsspeicher im Ressourcenpool 'default'. Weitere Informationen finden Sie unter " http://go.microsoft.com/fwlink/?LinkId=330673 ".

Im Protokoll wird ein Bericht mit dem von jeder Komponente verwendeten Speicher erstellt (glaube ich). Wenn ich den Bericht richtig interpretiere, können wir feststellen, dass viel Speicher belegt ist MEMORYCLERK_SQLBUFFERPOOL. Den Bericht finden Sie hier: http://pastebin.com/kgmk9dPH

Ich habe auch einen Bericht mit einer Grafik erstellt, die die gleiche "Schlussfolgerung" zeigt:

![Speichernutzung

Hier sind vielleicht noch weitere nützliche Berichte:

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Beachten Sie, dass ich diesen Fehler auch im Protokoll gesehen habe:

2015-12-17 12: 04: 52.37 spid70 Seite konnte aufgrund des Datenbankspeicherdrucks nicht zugeordnet werden: FAIL_PAGE_ALLOCATION 8

Hier einige Informationen zum Arbeitsspeicher des Servers:

  • Gesamtspeicher auf dem Server: 16 GB

  • Dem SQL Server zugewiesener Speicher: 12288 Mb

  • Verwendeter physischer Speicher (von sys.dm_os_process_memory): 9287 Mb

Wenn dies hilfreich sein kann, hostet der Server keine SharePoint-Datenbank.


Was ist der maximale Arbeitsspeicher und der gesamte RAM auf dem Server?
Kin Shah

Antworten:


6

Obwohl dies wahrscheinlich keine genaue Antwort auf Ihr Problem ist, werde ich es trotzdem posten und hoffen, dass es Ihnen in gewisser Weise hilft.

Was Sie sehen, ist nicht das, MEMORYCLERK_SQLBUFFERPOOLsondern das MEMORYCLERK_SQLLOGPOOLAufnehmen der gesamten Erinnerung.

Es gibt ein bekanntes Problem mit SQL 2012 In SQL Server 2012 treten Fehler aufgrund von Speichermangel auf . Obwohl Sie 2014 ausführen, besteht die Möglichkeit, dass Sie auf dasselbe Problem stoßen (obwohl ich für 2014 kein Verbindungselement gefunden habe).

Es gibt auch dieses bekannte Problem sowohl für 2014 als auch für 2012, bei dem es um Index-Neuerstellungen geht always on. Sie haben nicht angegeben, dass Sie das verwenden, aber möglicherweise hat derselbe Fehler andere Auslöser: UPDATE: Der SQL-Cache-Speicher nimmt ab und die CPU-Auslastung steigt, wenn Sie einen Index für eine Tabelle in SQL Server neu erstellen

Daher ist mein bester Vorschlag fürs Erste, auf die neueste CU zu aktualisieren und zu prüfen, ob dies immer noch der Fall ist, da in letzter Zeit einige Korrekturen vorgenommen wurden MEMORYCLERK_SQLLOGPOOL. Da Sie RTM nur mit zwei Sicherheitsupdates ausführen, die möglicherweise sinnvoll sind, sind SP1 + mehrere CUs verfügbar.

Da in diesem Artikel auch eine relativ hohe Speichernutzung MEMORYCLERK_XTPverwendet wird, in-memory OLTPkönnen Sie folgende Probleme beheben: Überwachen und Beheben der Speichernutzung

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.