SQL Server, Speicher-Manager (Objekt)

Gilt für: SQL Server

Das Memory Manager-Objekt in Microsoft SQL Server stellt Leistungsindikatoren bereit, um die gesamte Serverspeicherauslastung zu überwachen. Das Überwachen der gesamten Speicherauslastung des Servers zur Messung der Benutzeraktivität und der Ressourcennutzung kann Ihnen dabei helfen, Leistungsengpässe zu erkennen. Die Überwachung des von einer SQL Server-Instanz verwendeten Arbeitsspeichers kann ihnen dabei helfen, Folgendes zu ermitteln:

  • Ob es zu Engpässen kommt, da nicht genügend Arbeitsspeicher vorhanden ist, um Daten, auf die häufig zugegriffen wird, im Cache zu speichern. Wenn der Arbeitsspeicher nicht ausreicht, muss SQL Server die Daten vom Datenträger abrufen.

  • Wenn die Abfrageleistung verbessert werden kann, indem sie mehr Arbeitsspeicher hinzufügen oder mehr Arbeitsspeicher für den Datencache oder interne SQL Server-Strukturen verfügbar machen.

Speicher-Manager-Leistungsindikatoren

In dieser Tabelle werden die SQL Server-Speicher-Manager-Leistungsindikatoren beschrieben.

Speicher-Manager-Leistungsindikatoren von SQL Server Beschreibung
Verbindungsspeicher (KB) Gibt den Gesamtumfang des dynamischen Arbeitsspeichers an, den der Server für die Aufrechterhaltung von Verbindungen verwendet.
Datenbankcachespeicher (KB) Gibt den Umfang des Arbeitsspeichers an, den der Server derzeit für den Datenbankseitencache verwendet.
Externer Speichernutzen Eine interne Schätzung des Leistungsnutzens durch das Hinzufügen von Speicher zu einem bestimmten Cache. Der Nutzen wird von der Engine hinzugefügt, um den Speicherverbrauch zwischen Caches auszugleichen und ist nützlich für den Support, wenn Problembehandlung in Fällen mit unerwarteter Vergrößerung des Caches erforderlich ist. Der Wert wird als Integer basierend auf einer internen Berechnung dargestellt.
Freier Arbeitsspeicher (KB) Gibt den Umfang des zugesicherten Arbeitsspeichers an, der derzeit nicht vom Server verwendet wird.
Zugewiesener Arbeitsbereichsspeicher (KB) Gibt den Gesamtumfang des Arbeitsspeichers an, der derzeit dem Ausführen von Prozessen, z. B. Hash-, Sortier-, Massenkopier- und Indexerstellungsvorgängen, zugewiesen ist.
Sperrblöcke Gibt die aktuelle Anzahl der Sperrblöcke an, die auf dem Server verwendet werden. Wird regelmäßig aktualisiert. Ein Sperrblock stellt eine einzelne gesperrte Ressource, wie z. B. eine Tabelle, Seite oder Zeile, dar.
Zugeordnete Sperrblöcke Gibt die aktuelle Anzahl der zugeordneten Sperrblöcke an. Beim Serverstart hängt die Anzahl der zugewiesenen Sperrblöcke sowie die Anzahl der zugewiesenen Sperrbesitzerblöcke von der Konfigurationsoption SQL Server-Sperren ab. Wenn mehr Sperrblöcke benötigt werden, steigt der Wert.
Sperrspeicher (KB) Gibt den Gesamtumfang des dynamischen Arbeitsspeichers an, den der Server für Sperren verwendet.
Sperrenbesitzerblöcke Gibt die Anzahl der Sperrenbesitzerblöcke an, die zurzeit auf dem Server verwendet werden. Wird regelmäßig aktualisiert. Ein Sperrenbesitzerblock stellt den Besitz einer Sperre für ein Objekt durch einen einzelnen Thread dar. Wenn also drei Threads jeweils über eine freigegebene Sperre (S) für eine Seite verfügen, liegen drei Sperrenbesitzerblöcke vor.
Zugeordnete Sperrenbesitzerblöcke Gibt die aktuelle Anzahl der zugeordneten Sperrenbesitzerblöcke an. Beim Serverstart hängt die Anzahl der zugewiesenen Sperrbesitzerblöcke und die Anzahl der zugewiesenen Sperrblöcke von der Konfigurationsoption SQL Server-Sperren ab. Wenn mehr Sperrenbesitzerblöcke benötigt werden, steigt der Wert dynamisch an.
Protokollpoolspeicher (KB) Die Gesamtkapazität des dynamischen Speichers, den der Server für den Protokollpool verwendet.
Maximaler Arbeitsbereichsspeicher (KB) Gibt den maximalen Umfang des Arbeitsspeichers an, der für das Ausführen von Prozessen, z. B. Hash-, Sortier,- Massenkopier- und Indexerstellungsvorgängen, zur Verfügung steht.
Ausstehende Speicherzuweisungen Gibt die Gesamtanzahl der Prozesse an, die erfolgreich eine Zuweisung für Arbeitsbereichsspeicher erhalten haben.
Ausstehende Speicherzuweisungen Gibt die Gesamtanzahl der Prozesse an, die auf eine Zuweisung von Arbeitsbereichsspeicher warten.
Optimiererspeicher (KB) Gibt den Gesamtumfang des dynamischen Arbeitsspeichers an, den der Server für die Abfrageoptimierung verwendet.
Reservierter Serverarbeitsspeicher (KB) Gibt den Umfang des Arbeitsspeichers an, den der Server für die zukünftige Verwendung reserviert hat. Dieser Leistungsindikator gibt den derzeit nicht verwendeten Umfang des ursprünglich zugewiesenen Arbeitsspeichers an, der in Erteilter Arbeitsbereichsspeicher (KB)angezeigt wird.
SQL-Cachespeicher (KB) Gibt den Gesamtumfang des dynamischen Arbeitsspeichers an, den der Server für den dynamischen SQL-Cache verwendet.
Gestohlener Serverarbeitsspeicher (KB) Gibt den Umfang des Arbeitsspeichers an, den der Server derzeit für andere Zwecke als Datenbankseiten verwendet.
Zielserverspeicher (KB) Gibt den idealen Umfang des Arbeitsspeichers an, den der Server belegen kann.
Serverspeicher gesamt (KB) Gibt den Umfang des Arbeitsspeichers an, den der Server mit dem Speicher-Manager zugesichert hat.

Beispiel

Sie beginnen damit, die Abfrageleistungsindikatoren in diesem Objekt mithilfe dieser T-SQL-Abfrage in der dynamischen Verwaltungssicht sys.dm_os_performance_counters zu untersuchen:

SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Memory Manager%';