sys.dm_xtp_system_memory_consumers (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure 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