Teilen über


Konfigurationsoptionen für den Serverarbeitsspeicher

Gilt für: SQL Server

Die Speicherauslastung für die SQL Server-Datenbank-Engine wird durch die beiden Konfigurationseinstellungen Min. Serverarbeitsspeicher (MB) und Max. Serverarbeitsspeicher (MB) gebunden. Im Laufe der Zeit und unter normalen Umständen versucht SQL Server den Speicher bis zum Grenzwert zu beanspruchen, der durch den maximalen Serverarbeitsspeicher (MB) festgelegt wurde.

Hinweis

Columnstore-Indizes: Übersicht und Übersicht über In-Memory OLTP und Nutzungsszenarien verfügen über eigene Arbeitsspeicherclerks, was die Überwachung der Pufferpoolnutzung erleichtert. Weitere Informationen finden Sie unter sys.dm_os_memory_clerks.

In älteren Versionen von SQL Server hatte die Speicherauslastung praktisch keine Obergrenze, wodurch für SQL Server der gesamte Systemarbeitsspeicher für die Verwendung verfügbar war. Es wird in allen Versionen von SQL Server empfohlen, eine Obergrenze für die SQL Server-Speicherauslastung zu konfigurieren, indem der maximale Serverarbeitsspeicher (MB) konfiguriert wird.

  • Seit SQL Server 2019 (15.x) bietet das SQL-Setup auf Windows-Servern eine Empfehlung für den max. Serverarbeitsspeicher (MB) für eine eigenständige SQL Server-Instanz basierend auf einem Prozentsatz des verfügbaren Systemarbeitsspeichers zum Zeitpunkt der Installation.
  • Sie können jederzeit die Grenzen des Arbeitsspeichers (in Megabyte) für einen SQL Server-Prozess neu konfigurieren, der von einer Instanz von SQL Server über die Konfigurationsoptionen min. Serverarbeitsspeicher (MB) und max. Serverarbeitsspeicher (MB) verwendet wird.

Hinweis

Dieser Leitfaden bezieht sich auf die SQL Server-Instanz unter Windows. Informationen zur Speicherkonfiguration in Linux finden Sie unter Bewährte Methoden für die Leistung und Konfigurationsrichtlinien für SQL Server für Linux und in der Einstellung „memory.memorylimitmb“.

Empfehlungen

Die Standardeinstellungen und die minimal zulässigen Werte für diese Optionen sind folgende:

Option Standard Mindestens zulässig Empfohlen
Min. Serverarbeitsspeicher (MB) 0 0 0
Max. Serverarbeitsspeicher (MB) 2\.147.483.647 Megabytes (MB). 128 MB 75 % des verfügbaren Systemspeichers, der von anderen Prozessen nicht verbraucht wird, einschließlich anderer Instanzen. Detailliertere Empfehlungen finden Sie unter max. Serverarbeitsspeicher.

Innerhalb dieser Begrenzungen können die Arbeitsspeicheranforderungen von SQL Server anhand der verfügbaren Systemressourcen dynamisch geändert werden. Weitere Informationen finden Sie unter Dynamische Arbeitsspeicherverwaltung.

  • Die Festlegung des Werts des max. Serverarbeitsspeichers (MB) auf einen zu hohen Wert kann dazu führen, dass eine einzelne Instanz von SQL Server möglicherweise mit anderen SQL Server-Instanzen um Arbeitsspeicher konkurrieren muss, die auf dem gleichen Host aufgeführt werden.
  • Wenn der max. Serverarbeitsspeicher (MB) jedoch zu niedrig festgelegt wird, geht Leistung verloren, was zu hoher Arbeitsspeicherauslastung und Leistungsproblemen in der SQL Server-Instanz führen kann.
  • Das Festlegen des max. Serverarbeitsspeichers auf den Minimalwert kann sogar den Start von SQL Server verhindern. Wenn sich SQL Server nach dem Ändern dieser Option nicht starten lässt, müssen Sie die Instanz mithilfe der Startoption -f starten und die Option Max. Serverarbeitsspeicher (MB) auf ihren vorherigen Wert zurücksetzen. Weitere Informationen finden Sie unter Startoptionen für den Datenbank-Engine-Dienst.
  • Es wird nicht empfohlen, den maximalen Serverarbeitsspeicher (MB) und den min. Serverarbeitsspeicher (MB) auf denselben Wert oder auf zu ähnliche Werte festzulegen.

Hinweis

Mit der Option für den maximalen Serverspeicher wird nur die Größe des SQL Server-Pufferpools beschränkt. Die Option für den maximalen Serverspeicher beschränkt nicht den verbleibenden, nicht reservierten Speicherbereich, den SQL Server für Zuordnungen anderer Komponenten wie erweiterte gespeicherte Prozeduren, COM-Objekte, nicht freigegebene DLLs und EXEs übrig lässt.

SQL Server kann den Arbeitsspeicher dynamisch verwenden. Sie können die Speicheroptionen jedoch auch manuell festlegen und den Umfang des für SQL Server zugreifbaren Arbeitsspeichers einschränken. Bevor Sie den Umfang des Arbeitsspeichers für SQL Server festlegen, sollten Sie die geeignete Arbeitsspeichereinstellung ermitteln. Ziehen Sie dazu vom gesamten physischen Speicher den Arbeitsspeicher ab, der für das Betriebssystem (OS), für nicht durch die Einstellung Max. Serverarbeitsspeicher (MB) gesteuerte Speicherbelegungen und für alle weiteren Instanzen von SQL Server erforderlich ist. (Falls der Server andere Anwendungen enthält, die Arbeitsspeicher verbrauchen, einschließlich weitere Instanzen von SQL Server, müssen Sie zusätzlich auch den für andere Verwendungen des Systems benötigten Arbeitsspeicher abziehen.) Die Differenz entspricht der maximalen Arbeitsspeichergröße, die Sie der aktuellen SQL Server-Instanz zuweisen können.

In allen Editionen von SQL Server kann der Arbeitsspeicher bis zum Speicherplatzlimit des virtuellen Adressraums des Prozesses konfiguriert werden. Weitere Informationen finden Sie unter Memory Limits for Windows and Windows Server Releases (Grenzwerte für den Arbeitsspeicher für Versionen von Windows und Windows Server).

Min. Serverarbeitsspeicher

Mithilfe der Konfigurationsoption Min. Serverarbeitsspeicher (MB) wird sichergestellt, dass für den SQL Server-Speicher-Manager eine Mindestmenge an Arbeitsspeicher verfügbar ist.

  • Allerdings wird die unter Min. Serverarbeitsspeicher (MB) angegebene Arbeitsspeichermenge von SQL Server nicht gleich beim Start zugeordnet. Sobald der Wert für die Speicherauslastung aufgrund der Clientauslastung erreicht ist, kann SQL Server nur dann Arbeitsspeicher freigeben, wenn der Wert für Min. Serverarbeitsspeicher (MB) reduziert wird. Wenn beispielsweise mehrere Instanzen von SQL Server gleichzeitig auf demselben Server installiert werden, sollten Sie den Parameter für Min. Serverarbeitsspeicher (MB) so festlegen, dass Arbeitsspeicher für eine Instanz reserviert wird.

  • Ferner ist das Festlegen eines Werts für Min. Serverarbeitsspeicher (MB) in einer virtualisierten Umgebung entscheidend, um sicherzustellen, dass Arbeitsspeichermangel beim zugrunde liegenden Host nicht zu dem Versuch führt, Arbeitsspeicher aus dem Pufferpool eines virtuellen Gastcomputers jenseits dessen abzuzweigen, was für eine vertretbare Leistung erforderlich ist. Idealerweise müssen Instanzen von SQL Server auf einem virtuellen Computer nicht mit den proaktiven Prozessen für die Belegungsfreigabe von Speicher für den virtuellen Host konkurrieren.

  • Allerdings kann nicht sichergestellt werden, dass SQL Server die in Min. Serverarbeitsspeicher (MB) angegebene Arbeitsspeichermenge zuordnet. Wenn die in Min. Serverarbeitsspeicher (MB) angegebene Arbeitsspeichermenge aufgrund der Serverlast zu keinem Zeitpunkt zugeordnet werden muss, verwendet SQL Server weniger Arbeitsspeicher.

Max. Serverarbeitsspeicher

Verwenden Sie den maximalen Serverspeicher (MB), um sicherzustellen, dass das Betriebssystem und andere Anwendungen nachteilige, zu hohe Speicherauslastung haben, die von SQL Server stammt.

  • Bevor Sie die Konfiguration für den maximalen Serverarbeitsspeicher (MB) festlegen, überwachen Sie den Gesamtspeicherverbrauch des Servers, der die SQL Server-Instanz während des normalen Vorgangs hostet, um die Speicherverfügbarkeit und -anforderungen zu ermitteln. Zur Erstkonfiguration oder wenn die SQL Server-Prozessspeicherauslastung nicht über einen Zeitverlauf erfasst werden konnte, verwenden Sie den folgenden generalisierten bewährten Methodenansatz, um Max. Serverarbeitsspeicher (MB) für eine einzelne Instanz zu konfigurieren:
    • Subtrahieren Sie anschließend das Äquivalent der potenziellen SQL Server-Thread-Arbeitsspeicherbelegungen außerhalb des Steuerelements Max. Serverarbeitsspeicher (MB), also die Stapelgröße 1 multipliziert mit der max. Anzahl berechneter Arbeitsthreads2.
    • Subtrahieren Sie dann 25 % für andere Speicherbelegungen außerhalb von Max. Serverarbeitsspeicher (MB), wie z. B. Sicherungspuffer, DLLs für erweiterte gespeicherte Prozeduren, Objekte, die mithilfe von Automatisierungsprozessen (sp_OA-Aufrufe) erstellt werden, und Zuordnungen von Verbindungsserveranbietern. Dies ist eine generische Annäherung, und Ihr tatsächlicher Bedarf kann variieren.
    • Der Rest sollte die Einstellung für den max. Serverarbeitsspeicher (MB) für die Einrichtung einer einzelnen Instanz bilden.

1 Informationen zu den Threadstapelgrößen der einzelnen Architekturen finden Sie im Handbuch zur Architektur der Speicherverwaltung.

2 Informationen zu den standardmäßig berechneten Arbeitsthreads für eine bestimmte Anzahl kategorisierter CPUs auf dem aktuellen Host finden Sie auf der Dokumentationsseite zum Konfigurieren der maximalen Anzahl von Arbeitsthreads (Serverkonfigurationsoption).

Manuelles Festlegen der Optionen

Sie können die Serveroptionen Min. Serverarbeitsspeicher (MB) und Max. Serverarbeitsspeicher (MB) so festlegen, dass ein großer Bereich von Arbeitsspeicherwerten überdeckt wird. Diese Methode ist vor allem dann sinnvoll, wenn der System- oder Datenbankadministrator eine Instanz von SQL Server mit den Arbeitsspeicheranforderungen anderer Anwendungen oder weiterer Instanzen von SQL Server, die auf demselben Computer ausgeführt werden, konfigurieren möchte.

Verwenden von Transact-SQL

Bei Min. Serverarbeitsspeicher (MB) und Max. Serverarbeitsspeicher (MB) handelt es sich um erweiterte Optionen. Wenn Sie diese Einstellungen mithilfe der gespeicherten Systemprozedur sp_configure ändern, können Sie diese nur ändern, wenn Erweiterte Optionen anzeigen auf 1 festgelegt ist. Diese Einstellungen treten sofort ohne Neustart des Servers in Kraft. Weitere Informationen finden Sie unter sp_configure.

Im folgenden Beispiel wird die Option für den maximalen Serverarbeitsspeicher (MB) auf 12.288 MB oder 12 GB festgelegt. Obwohl sp_configure den Namen der Option als max server memory (MB) angibt, können Sie nur (MB) auslassen.

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max server memory', 12288;
GO
RECONFIGURE;
GO

Die folgende Abfrage gibt Informationen zum aktuell konfigurierten Wert und dem Wert zurück, der aktuell verwendet wird. Diese Abfrage gibt Ergebnisse zurück, unabhängig davon, ob die sp_configure-Option für „Erweiterte Optionen anzeigen“ aktiviert ist.

SELECT [name], [value], [value_in_use]
FROM sys.configurations
WHERE [name] = 'max server memory (MB)' OR [name] = 'min server memory (MB)';

Verwenden Sie SQL Server Management Studio

Verwenden Sie die Optionen Min. Serverarbeitsspeicher (MB) und Max. Serverarbeitsspeicher (MB), um den vom SQL Server-Speicher-Manager für eine SQL Server-Instanz von verwalteten Umfang des Arbeitsspeichers (in MB) umkonfigurieren.

  1. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf einen Server, und wählen Sie Eigenschaften aus.

  2. Wählen Sie die Seite Arbeitsspeicher des Fensters Servereigenschaften aus. Die aktuellen Werte des min. Serverarbeitsspeichers und des max. Serverarbeitsspeichers werden angezeigt.

  3. Geben Sie in Serverspeicheroptionen die gewünschten Zahlen für den min. Serverarbeitsspeicher und den max. Serverarbeitsspeicher ein. Empfehlungen finden Sie unter Min. Serverarbeitsspeicher (MB) und Max. Serverarbeitsspeicher (MB) in diesem Artikel.

Der folgende Screenshot zeigt alle drei Schritte:

Screenshot der Speicherkonfigurationsoptionen in SSMS.

Sperren von Seiten im Speicher (LPIM)

Windows-basierte Anwendungen können Windows-Adressfenstererweiterungen (AWE)-APIs verwenden, um physischen Speicher im Prozessadressraum zuzuweisen und zuzuordnen. Mit der LPIM Windows-Richtlinie werden die Konten bestimmt, welche auf die API zugreifen können, um Daten im physischen Speicher beizubehalten. Dadurch wird das systemgesteuerte Auslagern der Daten in den virtuellen Arbeitsspeicher verhindert. Der mit AWE zugewiesene Speicher wird gesperrt, bis die Anwendung ihn explizit freigibt oder sich beendet. Die Verwendung der AWE-APIs für die Speicherverwaltung in 64-Bit-SQL Server wird auch häufig als gesperrte Seiten bezeichnet. Durch Sperren von Seiten im Arbeitsspeicher können Sie die Reaktionsfähigkeit des Servers möglicherweise auch nach Auslagerung von Arbeitsspeicherdaten auf die Festplatte aufrechterhalten. Die Option Seiten im Arbeitsspeicher sperren wird für Instanzen der SQL Server Standard Edition und höher aktiviert, wenn dem Konto mit den Privilegien zum Ausführen von sqlservr.exe das Windows-Benutzerrecht Seiten im Arbeitsspeicher sperren (Lock Pages in Memory, LPIM) erteilt wurde.

Entfernen Sie zum Deaktivieren der Option Seiten im Arbeitsspeicher sperren für SQL Server das Benutzerrecht Seiten im Arbeitsspeicher sperren für das Konto mit der Ausführungsberechtigung für sqlservr.exe (das SQL Server-Startkonto).

Die Verwendung von LPIM wirkt sich nicht auf die dynamische Arbeitsspeicherverwaltung von SQL Server aus und ermöglicht ein Erweitern oder Verkleinern aufgrund der Anforderungen anderer Arbeitsspeicherclerks. Bei der Verwendung des Benutzerrechts Seiten im Arbeitsspeicher sperren empfiehlt es sich dringend, einen oberen Grenzwert für Max. Serverarbeitsspeicher (MB) festzulegen. Weitere Informationen finden Sie unter Max. Serverarbeitsspeicher (MB).

LPIM sollte verwendet werden, wenn es Hinweise auf eine Auslagerung des sqlservr-Prozesses gibt. In diesem Fall wird im Fehlerprotokoll der Fehler 17890 gemeldet, wie im folgenden Beispiel gezeigt:

A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: #### seconds. Working set (KB): ####, committed (KB): ####, memory utilization: ##%.

Die Verwendung von LPIM mit einer falsch konfigurierten Einstellung für den max. Serverarbeitsspeicher (MB), die keine anderen Speicherverbraucher im System berücksichtigt, kann zu Instabilität führen (je nachdem, wie viel Arbeitsspeicher von anderen Prozessen benötigt wird, oder von den SQL Server-Arbeitsspeicheranforderungen außerhalb der Größe des maximalen Serverarbeitsspeichers (MB)). Weitere Informationen finden Sie unter Max. Serverarbeitsspeicher. Wenn die Berechtigung Seiten im Arbeitsspeicher sperren (LPIM) (auf 32-Bit- oder 64-Bit-Systemen) gewährt wird, wird dringend empfohlen, den maximalen Serverarbeitsspeicher (MB) auf einen bestimmten Wert festzulegen, anstatt den Standardwert von 2.147.483.647 Megabyte (MB) zu belassen.

Hinweis

Ab SQL Server 2012 (11.x) wird das Ablaufverfolgungsflag 845 nicht von der Standard Edition benötigt, um gesperrte Seiten zu verwenden.

Aktivieren von Seiten im Arbeitsspeicher sperren

Wenn Sie die vorherigen Informationen berücksichtigt haben, können Sie die Option Seiten im Arbeitsspeicher sperren, indem Sie dem Dienstkonto für die SQL Server-Instanz die Berechtigung dafür erteilen. Weitere Informationen finden Sie unter Aktivieren der Option „Sperren von Seiten im Speicher“ (Windows).

Informationen zum Ermitteln des Dienstkontos für die Instanz von SQL Server finden Sie im SQL Server-Konfigurations-Manager. Sie können alternativ auch service_account über sys.dm_server_services abfragen. Weitere Informationen finden Sie unter sys.dm_server_services.

Anzeigen des Status von Seiten im Arbeitsspeicher sperren

Verwenden Sie die folgende Abfrage, um zu ermitteln, ob die Berechtigung Seiten im Arbeitsspeicher sperren dem Dienstkonto für die Instanz von SQL Server gewährt wird. Diese Abfrage wird in SQL Server 2016 (13.x) SP1 und höher unterstützt.

SELECT sql_memory_model_desc FROM sys.dm_os_sys_info;

Die folgenden Werte von sql_memory_model_desc geben den Status von LPIM an:

  • CONVENTIONAL. Die Berechtigung „Seiten im Arbeitsspeicher sperren“ wird nicht gewährt.
  • LOCK_PAGES. Die Berechtigung „Seiten im Arbeitsspeicher sperren“ wird gewährt.
  • LARGE_PAGES. Die Berechtigung „Seiten im Arbeitsspeicher sperren“ wird im Unternehmensmodus mit aktiviertem Ablaufverfolgungsflag 834 gewährt. Dies ist eine erweiterte Konfiguration und wird für die meisten Umgebungen nicht empfohlen. Weitere Informationen und wichtige Vorbehalte finden Sie unter Ablaufverfolgungsflag 834.

Verwenden Sie die folgenden Methoden, um zu bestimmen, ob die SQL Server Instanz gesperrte Seiten verwendet:

  • Die Ausgabe der folgenden Transact-SQL-Abfrage zeigt nichtleere-Werte für locked_page_allocations_kb:

    SELECT osn.node_id, osn.memory_node_id, osn.node_state_desc, omn.locked_page_allocations_kb
    FROM sys.dm_os_memory_nodes omn
    INNER JOIN sys.dm_os_nodes osn ON (omn.memory_node_id = osn.memory_node_id)
    WHERE osn.node_state_desc <> 'ONLINE DAC';
    
  • Das aktuelle SQL Server-Fehlerprotokoll meldet die Meldung, Using locked pages in the memory manager während des Serverstarts.

  • Der Abschnitt „Memory Manager“ der DBCC MEMORYSTATUS-Ausgabe zeigt einen nichtleeren Wert für das AWE Allocated Element an.

Mehrere Instanzen von SQL Server

Wenn Sie mehrere Instanzen der Datenbank-Engine ausführen, stehen Ihnen zum Verwalten des Arbeitsspeichers verschiedene Möglichkeiten zur Verfügung:

  • Verwenden Sie Max. Serverarbeitsspeicher (MB) in jeder Instanz, um die Speicherbelegung zu steuern, wie zuvor ausführlich dargestellt. Richten Sie für jede Instanz Maximaleinstellungen ein, und achten Sie darauf, dass der gesamte zugeordnete Arbeitsspeicher nicht größer ist als der insgesamt auf dem Computer verfügbare physische Speicher. Es empfiehlt sich, den jeder Instanz zugeordneten Arbeitsspeicher proportional zur erwarteten Arbeitsauslastung oder Datenbankgröße zu bemessen. Dieser Ansatz hat den Vorteil, dass beim Starten neuer Prozesse oder Instanzen sofort freier Arbeitsspeicher für die Prozesse oder Instanzen zur Verfügung steht. Wenn nicht alle Instanzen ausgeführt werden, ist der Nachteil, dass keine der laufenden Instanzen den verbleibenden freien Arbeitsspeicher nutzen kann.

  • Verwenden Sie Min. Serverarbeitsspeicher (MB) in jeder Instanz, um die Speicherbelegung zu steuern, wie zuvor ausführlich dargestellt. Richten Sie für jede Instanz Minimaleinstellungen ein, sodass die Summe dieser Mindestwerte 1 bis 2 GB unterhalb des gesamten physischen Speichers auf dem Computer liegt. Auch bei dieser Methode empfiehlt es sich, die Werte proportional zu der für die jeweilige Instanz erwarteten Arbeitsauslastung zu bemessen. Dieser Ansatz hat den Vorteil, dass die laufenden Instanzen den verbleibenden freien Arbeitsspeicher nutzen können, wenn nicht alle Instanzen gleichzeitig ausgeführt werden. Diese Vorgehensweise ist auch dann sinnvoll, wenn auf dem Computer ein weiterer speicherintensiver Prozess vorhanden ist, da sichergestellt ist, dass SQL Server zumindest eine angemessene Menge an Arbeitsspeicher erhält. Der Nachteil besteht darin, dass es beim Starten einer neuen Instanz (oder eines anderen Prozesses) ggf. etwas dauern kann, bis die laufenden Instanzen Speicher freigeben. Dies trifft vor allem dann zu, wenn die Instanzen zuerst noch geänderte Seiten in ihre jeweiligen Datenbanken zurückschreiben müssen.

  • Verwenden Sie sowohl den max. Serverarbeitsspeicher (MB) als auch den min. Serverarbeitsspeicher (MB) in jeder Instanz, um die Speichernutzung zu steuern, die maximale Auslastung und den minimalen Speicherschutz jeder Instanz innerhalb eines breiten Spektrums potenzieller Speicherauslastungsstufen zu beobachten und zu optimieren.

  • Unternehmen Sie nichts (dies wird nicht empfohlen). Die ersten Instanzen, denen eine Arbeitslast zugewiesen wird, weisen sich den gesamten Arbeitsspeicher zu. Instanzen im Leerlauf oder Instanzen, die später gestartet werden, müssen in dieser Situation u. U. mit einer minimalen Menge an Arbeitsspeicher auskommen. SQL Server versucht nicht, die Speicherauslastung über mehrere Instanzen hinweg auszugleichen. Alle Instanzen antworten jedoch auf Signale der Windows-Arbeitsspeicherbenachrichtigung, um ihren Speicherbedarf anzupassen. Windows nimmt keinen Speicherausgleich bei Anwendungen vor, die über eine Arbeitsspeicherbenachrichtigungs-API verfügen. Es erfolgt lediglich eine globale Rückmeldung über die Verfügbarkeit von Arbeitsspeicher auf dem System.

Sie können diese Einstellungen ohne Neustart der Instanzen ändern. Dadurch können Sie problemlos mit verschiedenen Einstellungen experimentieren, um die für Ihr Nutzungsmuster am besten geeigneten Einstellungen herauszufinden.

Beispiele

A. Festlegen der Option „Max. Serverarbeitsspeicher“ auf 4 GB.

Im folgenden Beispiel wird die Option für den maximalen Serverarbeitsspeicher (MB) auf 4096 MB oder 4 GB festgelegt. Obwohl sp_configure den Namen der Option als max server memory (MB) angibt, können Sie nur (MB) auslassen.

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max server memory', 4096;
GO
RECONFIGURE;
GO

Dadurch wird eine Anweisung ausgegeben, die Configuration option 'max server memory (MB)' changed from 2147483647 to 4096. Run the RECONFIGURE statement to install. ähnelt. Das neue Speicherlimit tritt nach der Ausführung von RECONFIGURE sofort in Kraft. Weitere Informationen finden Sie unter sp_configure.

B. Bestimmen der aktuellen Speicherbelegung

Mit der folgenden Abfrage werden Informationen zur aktuellen Speicherbelegung zurückgegeben.

SELECT
  physical_memory_in_use_kb/1024 AS sql_physical_memory_in_use_MB,
   large_page_allocations_kb/1024 AS sql_large_page_allocations_MB,
   locked_page_allocations_kb/1024 AS sql_locked_page_allocations_MB,
   virtual_address_space_reserved_kb/1024 AS sql_VAS_reserved_MB,
   virtual_address_space_committed_kb/1024 AS sql_VAS_committed_MB,
   virtual_address_space_available_kb/1024 AS sql_VAS_available_MB,
   page_fault_count AS sql_page_fault_count,
   memory_utilization_percentage AS sql_memory_utilization_percentage,
   process_physical_memory_low AS sql_process_physical_memory_low,
   process_virtual_memory_low AS sql_process_virtual_memory_low
FROM sys.dm_os_process_memory;

C. Überprüfen des Werts von max server memory (MB)

Die folgende Abfrage gibt Informationen zum aktuell konfigurierten Wert und dem verwendeten Wert zurück. Diese Abfrage gibt Ergebnisse zurück, unabhängig davon, ob die sp_configure-Option für „Erweiterte Optionen anzeigen“ aktiviert ist.

SELECT [value], [value_in_use]
FROM sys.configurations WHERE [name] = 'max server memory (MB)';