Condividi tramite


sys.dm_xtp_system_memory_consumers (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure

Segnala i consumer di memoria a livello di sistema per OLTP in memoria. La memoria per questi consumer proviene dal pool predefinito (quando l'allocazione si trova nel contesto di un thread utente) o dal pool interno (se l'allocazione è nel contesto di un thread di sistema).

SELECT *
FROM sys.dm_xtp_system_memory_consumers;

Per altre informazioni, vedere OLTP in memoria (ottimizzazione per la memoria).

Nome colonna Tipo Descrizione
memory_consumer_id bigint ID interno del consumer di memoria.
memory_consumer_type int Intero che rappresenta il tipo del consumer di memoria con uno dei valori seguenti:

0 - Non dovrebbe essere visualizzato. Aggrega l'utilizzo della memoria due o più consumer.

1 - LOOKASIDE: tiene traccia del consumo di memoria per un lookaside di sistema.

2 - VARHEAP: tiene traccia del consumo di memoria per un heap a lunghezza variabile.

4 - Pool di pagine di I/O: tiene traccia del consumo di memoria per un pool di pagine di sistema usato per le operazioni di I/O.
memory_consumer_type_desc nvarchar(16) Descrizione del tipo del consumer di memoria:

0 - Non deve essere visualizzato

1 - LOOKASIDE

2 - VARHEAP

4 - PGPOOL
memory_consumer_desc nvarchar(64) Descrizione dell'istanza del consumer di memoria:

VARHEAP:
Heap di sistema. Utilizzo generico. Utilizzato solo per allocare gli elementi di lavoro di Garbage Collection.
-OPPURE-
Heap di lookaside. Utilizzato dai lookaside quando il numero di elementi contenuti nell'elenco lookaside raggiunge un limite predeterminato (in genere circa 5.000 elementi).

PGPOOL: per i pool di sistema di I/O sono disponibili tre dimensioni diverse: pool di pagine system 4K, pool di pagine system 64 K e pool di pagine system 256 K.
lookaside_id bigint ID del provider di memoria dell'elenco lookaside e locale a livello di thread.
pagepool_id bigint ID del provider di memoria del pool di pagine e locale a livello di thread.
allocated_bytes bigint Numero di byte riservati al consumer.
used_bytes bigint Byte utilizzati dal consumer. Si applica solo ai consumer di memoria varheap.

A partire da SQL Server 2022 (16.x), si applica ai consumer di memoria varheap e lookaside.
allocation_count int Numero di allocazioni.

A partire da SQL Server 2022 (16.x), il numero di allocazioni dall'heap di sistema per i consumer di memoria lookaside.
partition_count int Solo per uso interno.
sizeclass_count int Solo per uso interno.
min_sizeclass int Solo per uso interno.
max_sizeclass int Solo per uso interno.
memory_consumer_address varbinary Indirizzo interno del consumer.

Autorizzazioni

È richiesta l'autorizzazione VIEW SERVER STATE nel server.

Autorizzazioni per SQL Server 2022 e versioni successive

È richiesta l'autorizzazione VIEW SERVER PERFORMANCE STATE per il server.

Osservazioni:

In SQL Server 2022 (16.x), questa DMV include colonne aggiuntive specifiche per i miglioramenti della memoria della memoria dei metadati TempDB ottimizzati per la memoria.

Esempi

In questo esempio vengono restituiti i consumer di memoria di sistema per l'istanza di SQL Server:

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;

Nell'output vengono mostrati tutti i consumer di memoria a livello di sistema. Ad esempio, vi sono consumer per transazioni LOOKASIDE.

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

Per visualizzare la memoria totale utilizzata dagli allocatori di sistema:

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;

Questo è il set di risultati.

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