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
Contenuto correlato
- Viste a gestione dinamica della tabella ottimizzate per la memoria (Transact-SQL)
- Errori di memoria insufficiente dei metadati tempdb (HkTempDB) ottimizzati per la memoria
- sys.sp_xtp_force_gc (Transact-SQL)
- sys.sp_xtp_checkpoint_force_garbage_collection (Transact-SQL)
- OLTP in memoria (ottimizzazione in memoria)