sys.dm_xtp_system_memory_consumers (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance
Signale les consommateurs de mémoire au niveau du système pour OLTP en mémoire. La mémoire pour ces consommateurs vient du pool par défaut (lorsque l’allocation est dans le contexte d’un thread d’utilisateur) ou du pool interne (si l’allocation est dans le contexte d’un thread système).
SELECT *
FROM sys.dm_xtp_system_memory_consumers;
Pour plus d’informations, consultez OLTP en mémoire (optimisation en mémoire).
Nom de la colonne | Type | Description |
---|---|---|
memory_consumer_id | bigint | ID interne du consommateur de mémoire. |
memory_consumer_type | int | Entier qui représente le type de consommateur de mémoire avec l’une des valeurs suivantes : 0 - Ne doit pas être affiché. Regroupe l'utilisation de la mémoire de deux consommateurs ou plus. 1 : LOOKASIDE : Effectue le suivi de la consommation de mémoire pour un système lookaside. 2 : VARHEAP : Effectue le suivi de la consommation de mémoire pour un segment de longueur variable. 4 : Pool de pages d’E/S : Effectue le suivi de la consommation de mémoire pour un pool de pages système utilisé pour les opérations d’E/S. |
memory_consumer_type_desc | nvarchar(16) | Description du type de consommateur de mémoire : 0 - Ne doit pas être affiché 1 : LOOKASIDE 2 - VARHEAP 4 - PGPOOL |
memory_consumer_desc | nvarchar(64) | Description de l'instance de consommateur de mémoire : VARHEAP : Segment du système. Usage universel. Actuellement utilisé uniquement pour allouer des éléments de travail de garbage collection. - ou - Segment lookaside. Utilisé par les segments lookaside lorsque le nombre d’éléments contenus dans la liste de segments lookaside atteint une limite haute prédéfinie (en règle générale environ 5 000 éléments). PGPOOL : Pour les pools de systèmes d’E/S, il existe trois tailles différentes : pool de pages System 4K, Pool de pages System 64 K et Pool de pages System 256-K. |
lookaside_id | bigint | ID du fournisseur de mémoire lookaside, ThreadLocal. |
pagepool_id | bigint | ID du fournisseur de mémoire de pool de pages, ThreadLocal. |
allocated_bytes | bigint | Nombre d'octets réservés pour ce consommateur. |
used_bytes | bigint | Octets utilisés par ce consommateur. S'applique uniquement aux consommateurs de mémoire varheap. À compter de SQL Server 2022 (16.x), s’applique aux consommateurs de mémoire varheap et lookaside. |
allocation_count | int | Nombre d'allocations. À compter de SQL Server 2022 (16.x), le nombre d’allocations à partir du tas système pour les consommateurs de mémoire lookaside. |
partition_count | int | Utilisation interne uniquement. |
sizeclass_count | int | Utilisation interne uniquement. |
min_sizeclass | int | Utilisation interne uniquement. |
max_sizeclass | int | Utilisation interne uniquement. |
memory_consumer_address | varbinary | Adresse interne du consommateur. |
autorisations
Nécessite des autorisations VIEW SERVER STATE sur le serveur.
Autorisations pour SQL Server 2022 (et versions plus récentes)
Nécessite l’autorisation VIEW SERVER PERFORMANCE STATE sur le serveur.
Notes
Dans SQL Server 2022 (16.x), cette DMV a des colonnes supplémentaires spécifiques à l’amélioration de la mémoire des métadonnées TempDB optimisées en mémoire.
Exemples
Cet exemple génère les consommateurs de mémoire système pour l’instance de 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;
Le résultat montre tous les consommateurs de mémoire au niveau du système. Pour cet exemple, il existe des consommateurs pour la transaction disponible.
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
Pour voir la mémoire totale consommée par les allocateurs système :
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;
Voici le jeu de résultats obtenu.
total_allocated_MB total_used_MB
-------------------- --------------------
2 2