sys.dm_xtp_system_memory_consumers (Transact-SQL)

Gilt für: SQL Server Azure SQL-DatenbankAzure SQL Managed Instance

Meldet Arbeitsspeicherconsumer auf Systemebene für In-Memory OLTP. Der Arbeitsspeicher für diese Consumer stammt entweder aus dem Standardpool (bei Zuordnung im Kontext eines Benutzerthreads) oder dem internen Pool (bei Zuordnung im Kontext eines Systemthreads).

SELECT * 
FROM sys.dm_xtp_system_memory_consumers;

Weitere Informationen finden Sie unter In-Memory OLTP (Speicheroptimierung).

Spaltenname type BESCHREIBUNG
memory_consumer_id bigint Interne ID für Arbeitsspeicherconsumer.
memory_consumer_type int Eine ganze Zahl, die den Typ des Arbeitsspeicherconsumers mit einem der folgenden Werte darstellt:

0: Soll nicht angezeigt werden. Aggregiert die Speichernutzung von zwei oder mehreren Consumern.

1 (LOOKASIDE): Verfolgt die Arbeitsspeichernutzung für ein Systemlookaside nach.

2 (VARHEAP): Verfolgt die Arbeitsspeichernutzung für einen Heap variabler Länge nach.

4 (E/A-Seitenpool): Verfolgt die Arbeitsspeichernutzung für einen Systemseitenpool nach, der für E/A-Vorgänge verwendet wird.
memory_consumer_type_desc nvarchar(16) Die Beschreibung des Typs des Arbeitsspeicherconsumers:

0: Soll nicht angezeigt werden.

1: LOOKASIDE

2: VARHEAP

4: PGPOOL
memory_consumer_desc nvarchar(64) Die Beschreibung der Arbeitsspeicherconsumer-Instanz:

VARHEAP:
Der Systemheap. Allgemeiner Zweck. Wird derzeit nur verwendet, um Arbeitselemente der Garbage Collection zuzuordnen.
ODER
Der Lookasideheap. Wird von Lookasides verwendet, wenn die Anzahl der in der Lookasideliste enthaltenen Elemente einen vordefinierten Grenzwert (normalerweise etwa 5.000 Elemente) erreicht.

PGPOOL: Bei E/A-Systempools gibt es drei unterschiedliche Größen für Systemseitenpools: 4.000, 64.000 und 256.000.
lookaside_id bigint Die ID des threadlokalen Nebenarbeitsspeicheranbieters.
pagepool_id bigint Die ID des threadlokalen Seitenpool-Arbeitsspeicheranbieters.
allocated_bytes bigint Anzahl der für den Consumer reservierten Bytes.
used_bytes bigint Die von diesem Consumer verwendeten Bytes. Gilt nur für varheap-Arbeitsspeicherconsumer.

Ab SQL Server 2022 (16.x) gilt für varheap- und lookaside-Speicherverbraucher.
allocation_count int Anzahl der Zuordnungen.

Ab SQL Server 2022 (16.x) die Anzahl der Zuordnungen aus dem Systemheap für Lookaside-Speicherverbraucher.
partition_count int Nur interne Verwendung.
sizeclass_count int Nur interne Verwendung.
min_sizeclass int Nur interne Verwendung.
max_sizeclass int Nur interne Verwendung.
memory_consumer_address varbinary Interne Adresse des Consumers.

Berechtigungen

Erfordert VIEW SERVER STATE-Berechtigungen auf dem Server.

Benutzerszenario

In diesem Beispiel werden die Arbeitsspeicherconsumer des Systems für die SQL Server-Instanz ausgegeben:

SELECT memory_consumer_type_desc,
       memory_consumer_desc,
       allocated_bytes / 1024 as allocated_bytes_kb, 
       used_bytes / 1024 as used_bytes_kb,
       allocation_count
FROM sys.dm_xtp_system_memory_consumers;

In der Ausgabe werden alle Arbeitsspeicherconsumer auf Systemebene angezeigt. Beispielsweise gibt es Consumer für das Transaktionslookaside.

memory_consumer_type_desc                memory_consumer_desc                           allocated_bytes_kb   used_bytes_kb        allocation_count
-------------------------------          ---------------------                          -------------------  --------------       ----------------
VARHEAP                                  Lookaside heap                                 0                    0                    0
VARHEAP                                  System heap                                    768                  0                    2
LOOKASIDE                                GC transaction map entry                       64                   64                   910
LOOKASIDE                                Redo transaction map entry                     128                  128                  1260
LOOKASIDE                                Recovery table cache entry                     448                  448                  8192
LOOKASIDE                                Transaction recent rows                        3264                 3264                 4444
LOOKASIDE                                Range cursor                                   0                    0                    0
LOOKASIDE                                Hash cursor                                    3200                 3200                 11070
LOOKASIDE                                Transaction save-point set entry               0                    0                    0
LOOKASIDE                                Transaction partially-inserted rows set        704                  704                  1287
LOOKASIDE                                Transaction constraint set                     576                  576                  1940
LOOKASIDE                                Transaction save-point set                     0                    0                    0
LOOKASIDE                                Transaction write set                          704                  704                  672
LOOKASIDE                                Transaction scan set                           320                  320                  156
LOOKASIDE                                Transaction read set                           704                  704                  343
LOOKASIDE                                Transaction                                    4288                 4288                 1459
PGPOOL                                   System 256K page pool                          5120                 5120                 20
PGPOOL                                   System 64K page pool                           0                    0                    0
PGPOOL                                   System 4K page pool                            24                   24                   6

So zeigen Sie den durch Systemzuordnungen belegten Gesamtarbeitsspeicher an

SELECT SUM(allocated_bytes) / (1024 * 1024) AS total_allocated_MB,
       SUM(used_bytes) / (1024 * 1024) AS total_used_MB
FROM sys.dm_xtp_system_memory_consumers;

Hier ist das Resultset.

total_allocated_MB   total_used_MB
-------------------- --------------------
2                    2

Weitere Informationen