Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-Datenbank in Microsoft Fabric
Gibt Speicherobjekte zurück, die derzeit von SQL Server zugeordnet sind. Sie können sys.dm_os_memory_objects verwenden, um die Speichernutzung zu analysieren und mögliche Speicherverluste zu identifizieren.
Note
Um dies von Azure Synapse Analytics oder Analytics Platform System (PDW) aufzurufen, verwenden Sie den Namen sys.dm_pdw_nodes_os_memory_objects. Diese Syntax wird von serverlosen SQL-Pool in Azure Synapse Analytics nicht unterstützt.
| Spaltenname | Datentyp | Description |
|---|---|---|
| memory_object_address | varbinary(8) | Adresse des Speicherobjekts. Nicht nullbar. |
| parent_address | varbinary(8) | Adresse des übergeordneten Speicherobjekts. Nullwerte zulassend. |
| pages_allocated_count | int |
Gilt für: SQL Server 2008 (10.0.x) bis SQL Server 2008 R2 (10.50.x). Anzahl der von diesem Objekt zugeordneten Seiten. Nicht nullbar. |
| pages_in_bytes | bigint |
Gilt für: SQL Server 2012 (11.x) und höher. Arbeitsspeicher in Bytes, der von dieser Instanz des Arbeitsspeicherobjekts zugeordnet wird. Nicht nullbar. |
| creation_options | int | Nur interne Verwendung. Nullwerte zulassend. |
| bytes_used | bigint | Nur interne Verwendung. Nullwerte zulassend. |
| Typ | nvarchar(60) | Typ des Speicherobjekts: Dies gibt eine Komponente an, zu der dieses Speicherobjekt gehört, oder die Funktion des Speicherobjekts. Nullwerte zulassend. |
| Name | varchar(128) | Nur interne Verwendung. Nullfähig. |
| memory_node_id | smallint | ID eines Speicherknotens, der von diesem Speicherobjekt verwendet wird. Nicht nullbar. |
| creation_time | datetime | Nur interne Verwendung. Nullwerte zulassend. |
| max_pages_allocated_count | int |
Gilt für: SQL Server 2008 (10.0.x) bis SQL Server 2008 R2 (10.50.x). Maximale Anzahl der von diesem Speicherobjekt zugeordneten Seiten. Nicht nullbar. |
| page_size_in_bytes | int |
Gilt für: SQL Server 2012 (11.x) und höher. Größe der von diesem Objekt zugeordneten Seiten in Bytes. Nicht nullbar. |
| max_pages_in_bytes | bigint | Höchstmenge an Arbeitsspeicher, die je von diesem Arbeitsspeicherobjekt verwendet wurde. Nicht nullbar. |
| page_allocator_address | varbinary(8) | Speicheradresse der Seitenzuordnung. Nicht nullbar. Weitere Informationen finden Sie unter sys.dm_os_memory_clerks (Transact-SQL). |
| creation_stack_address | varbinary(8) | Nur interne Verwendung. Nullwerte zulassend. |
| sequence_num | int | Nur interne Verwendung. Nullwerte zulassend. |
| partition_type | int |
Gilt für: SQL Server 2016 (13.x) und höher. Der Typ der Partition: 0 – Nicht partitionierbares Speicherobjekt 1 : Partitionierbares Speicherobjekt, derzeit nicht partitioniert 2 – Partitionierbares Speicherobjekt, partitioniert durch NUMA-Knoten. In einer Umgebung mit einem einzelnen NUMA-Knoten entspricht dies 1. 3 – Partitionierbares Speicherobjekt, partitioniert von CPU. |
| contention_factor | real |
Gilt für: SQL Server 2016 (13.x) und höher. Ein Wert, der den Inhalt dieses Speicherobjekts angibt, wobei 0 bedeutet, dass es keine Begnügung gibt. Der Wert wird aktualisiert, wenn während dieses Zeitraums eine bestimmte Anzahl von Speicherzuweisungen vorgenommen wurde. Gilt nur für threadsichere Speicherobjekte. |
| waiting_tasks_count | bigint |
Gilt für: SQL Server 2016 (13.x) und höher. Die Anzahl der Wartezeiten für dieses Speicherobjekt. Dieser Zähler wird immer dann erhöht, wenn dieser Speicher von diesem Speicherobjekt zugewiesen wird. Das Inkrement ist die Anzahl der Aufgaben, die derzeit auf den Zugriff auf dieses Speicherobjekt warten. Gilt nur für threadsichere Speicherobjekte. Dies ist ein Best-Effort-Wert ohne Korrektheitsgarantie. |
| exclusive_access_count | bigint |
Gilt für: SQL Server 2016 (13.x) und höher. Gibt an, wie oft auf dieses Speicherobjekt exklusiv zugegriffen wurde. Gilt nur für threadsichere Speicherobjekte. Dies ist ein Best-Effort-Wert ohne Korrektheitsgarantie. |
| pdw_node_id | int |
gilt für: Azure Synapse Analytics, Analytics Platform System (PDW) Der Bezeichner für den Knoten, auf dem sich diese Verteilung befindet. |
partition_type, contention_factor, waiting_tasks_count und exclusive_access_count sind noch nicht in SQL-Datenbank implementiert.
Erlaubnisse
Für SQL Server und SQL Managed Instance ist VIEW SERVER STATE Berechtigung erforderlich.
Für SQL-Datenbank Basic, S0und S1 Dienstziele sowie für Datenbanken in elastischen Poolsist der Serveradministrator Konto, der Microsoft Entra-Administrator Konto oder die Mitgliedschaft in der ##MS_ServerStateReader##Serverrolle erforderlich. Für alle anderen SQL-Datenbankdienstziele ist entweder die VIEW DATABASE STATE Berechtigung für die Datenbank oder die Mitgliedschaft in der ##MS_ServerStateReader## Serverrolle erforderlich.
Berechtigungen für SQL Server 2022 und höher
Benötigt VIEW die Berechtigung SERVER PERFORMANCE STATE auf dem Server.
Bemerkungen
Speicherobjekte sind Heaps. Sie stellen im Vergleich zu den Arbeitsspeicherclerks Zuordnungen mit feinerer Granularität bereit. SQL Server-Komponenten verwenden Speicherobjekte anstelle von Speicherbearbeitern. Speicherobjekte verwenden die Seitenzuordnungsschnittstelle des Arbeitsspeicherclerks für die Zuordnung von Seiten. Speicherobjekte verwenden keine Schnittstellen, die auf virtuellem Speicher oder Shared Memory basieren. Abhängig von den Zuordnungsmustern können Komponenten verschiedene Typen von Speicherobjekten erstellen, um Bereiche zufälliger Größe zuzuordnen.
Die Standardseitengröße eines Speicherobjekts beträgt 8 kB. Inkrementelle Speicherobjekte können jedoch Seitengrößen zwischen 512 Bytes und 8 kB aufweisen.
Note
Die Seitengröße entspricht nicht der maximalen Zuordnung. Die Seitengröße ist vielmehr eine Zuordnungseinheit, die von einer Seitenzuordnung unterstützt und von einem Arbeitsspeicherclerk implementiert wird. Sie können von Arbeitsspeicherobjekten größere Zuordnungen als 8 KB anfordern.
Examples
Im folgenden Beispiel wird der von den einzelnen Speicherobjekttypen zugeordnete Speicherumfang zurückgegeben.
SELECT SUM (pages_in_bytes) as 'Bytes Used', type
FROM sys.dm_os_memory_objects
GROUP BY type
ORDER BY 'Bytes Used' DESC;
GO
Siehe auch
Dynamische Verwaltungssichten in Verbindung mit dem SQL Server-Betriebssystem (Transact-SQL)
sys.dm_os_memory_clerks (Transact-SQL)