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:
Hier sind vielleicht noch weitere nützliche Berichte:
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.
quelle
Antworten:
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_SQLBUFFERPOOL
sondern dasMEMORYCLERK_SQLLOGPOOL
Aufnehmen 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 erstellenDaher 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_XTP
verwendet wird,in-memory OLTP
können Sie folgende Probleme beheben: Überwachen und Beheben der Speichernutzungquelle