KB4077105 – FIX: Fehler "Nicht genügend Arbeitsspeicher", wenn der virtuelle Adressraum des SQL Server-Prozesses in SQL Server sehr niedrig ist

Gilt für
SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Symptome

Angenommen, Sie installieren die 64-Bit-Version von Microsoft SQL Server 2014, 2016 oder 2017 auf einem Computer unter Windows Server 2012 oder einer früheren Version des Windows-Betriebssystems. Wenn SQL Server den gesamten virtuellen Adressraum im Benutzermodus verbraucht, wird im SQL Server-Fehlerprotokoll möglicherweise eine Fehlermeldung zu unzureichendem Arbeitsspeicher angezeigt. Darüber hinaus dauert es lange, bis die Ausführung von Abfragen abgeschlossen ist, und die SOS_MEMORY_TOPLEVELBLOCKALLOCATOR Wartezeit tritt auf.

Bei der Untersuchung der folgenden Informationspunkte werden Sie feststellen, dass nur sehr wenig virtueller Adressraum zur Verfügung steht:

  • DBCC MEMORYSTATUS – Abschnitt "Prozess-/Systemanzahl" – Verfügbarer virtueller Speicher
  • DMV: sys.dm_os_process_memory – Spalte virtual_address_space_available_kb

Diese Werte beginnen bei etwa 8 Terabyte (TB) bei einem x64-Prozess und steigen weiter nach unten und erreichen einige Gigabyte (GB).

Wenn Sie sich in einer Phase befinden, in der der verfügbare virtuelle Adressraum sehr niedrig ist, kann bei Abfragen, die versuchen, eine Speicherzuweisung durchzuführen, auch der Wartetyp CMEMTHREAD auftreten.

Die folgenden Datenpunkte werden im Laufe der Zeit weiter zunehmen:

  • DMV: sys.dm_os_process_memory und sys.dm_os_memory_nodes – Spalte virtual_address_space_reserved_kb
  • DBCC MEMORYSTATUS – Abschnitt "Speicherverwaltung" – VM reserviert

Diese Werte steigen in der Regel um ein Vielfaches des Werts für "maximaler Serverspeicher" auf bis zu fast 8 TB.

Hinweis Ein damit verbundenes Problem wird auch in KB 3074434 beschrieben.

Lösung

Dieses Update ist in den folgenden kumulativen Updates für SQL Server enthalten:

Kumulatives Update 4 für SQL Server 2017

Kumulatives Update CU 8 für SQL Server 2016 SP1

Kumulatives Update 10 für SQL Server 2014 Service Pack 2

Informationen zu kumulativen Updates für SQL Server:

Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und Sicherheitsfixes, die im vorherigen kumulativen Update enthalten waren. Sehen Sie sich die neuesten kumulativen Updates für SQL Server an:

Neuestes kumulative Update für SQL Server 2017

Neuestes kumulative Update für SQL Server 2016

Neuestes kumulative Update für SQL Server 2014

Hinweis Nachdem Sie dieses Update angewendet haben, müssen Sie das Ablaufverfolgungsflag 8075 als Startparameter hinzufügen, um diese Änderung zu aktivieren.

Status

Microsoft hat bestätigt, dass dies ein Problem bei den Microsoft-Produkten ist, die im Abschnitt „Gilt für“ aufgeführt sind.

Referenzmaterial

Informieren Sie sich über die Terminologie, die Microsoft zum Beschreiben von Softwareupdates verwendet.