sys.dm_xtp_system_memory_consumers (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Informa a los consumidores de memoria de nivel de sistema para OLTP en memoria. La memoria para estos consumidores procede del grupo predeterminado (cuando la asignación se produce en el contexto de un subproceso de usuario) o del grupo interno (si la asignación está en el contexto de un subproceso del sistema).

SELECT *
FROM sys.dm_xtp_system_memory_consumers;

Para obtener más información, vea OLTP en memoria (optimización en memoria).

Nombre de la columna Tipo Descripción
memory_consumer_id bigint Identificador interno del consumidor de memoria.
memory_consumer_type int Entero que representa el tipo del consumidor de memoria con uno de los valores siguientes:

0 - No se debe mostrar. Agrega el uso de memoria de dos o varios consumidores.

1 - LOOKASIDE: hace un seguimiento del consumo de memoria para una lista de direcciones del sistema.

2 - VARHEAP: hace un seguimiento del consumo de memoria para un montón de longitud variable.

4 - IO page pool: hace un seguimiento del consumo de memoria para un grupo de páginas del sistema que se usa para operaciones de E/S.
memory_consumer_type_desc nvarchar(16) Descripción del tipo de consumidor de memoria:

0: no se debe mostrar

1 - LOOKASIDE

2: VARHEAP

4: PGPOOL
memory_consumer_desc nvarchar (64) Descripción de la instancia del consumidor de memoria:

VARHEAP:
Montón del sistema. Uso general. Actualmente solo se usa para asignar elementos de trabajo de la recolección de elementos no utilizados.
O
Montón de lista de direcciones. Lo usan las listas de direcciones cuando el número de elementos contenidos en la lista alcanza un límite predeterminado (normalmente alrededor de 5 000 elementos).

PGPOOL: para los grupos de sistemas de E/S hay tres tamaños diferentes: grupo de páginas del sistema 4K, grupo de páginas del sistema 64 K y grupo de páginas system 256-K.
lookaside_id bigint El identificador del proveedor de memoria de direcciones local del subproceso.
pagepool_id bigint El identificador del subproceso local, proveedor de memoria del grupo de páginas.
allocated_bytes bigint Número de bytes reservados para el consumidor.
used_bytes bigint Bytes utilizados por el consumidor. Solo se aplica a los consumidores de memoria varheap.

A partir de SQL Server 2022 (16.x), se aplica a los consumidores de memoria varheap y lookaside.
allocation_count int Número de asignaciones.

A partir de SQL Server 2022 (16.x), el número de asignaciones del montón del sistema para los consumidores de memoria de lookaside.
partition_count int Solo para uso interno.
sizeclass_count int Solo para uso interno.
min_sizeclass int Solo para uso interno.
max_sizeclass int Solo para uso interno.
memory_consumer_address varbinary Dirección interna del consumidor.

Permisos

Requiere los permisos VIEW SERVER STATE en el servidor.

Permisos para SQL Server 2022 y versiones posteriores

Requiere el permiso VER ESTADO DE RENDIMIENTO DEL SERVIDOR en el servidor.

Comentarios

En SQL Server 2022 (16.x), esta DMV tiene columnas adicionales específicas de las mejoras de memoria de metadatos tempDB optimizadas para memoria.

Ejemplos

En este ejemplo se generan los consumidores de memoria del sistema para la instancia 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;

El resultado muestra todos los consumidores de memoria en el nivel de sistema. Por ejemplo, hay consumidores para el registro de transacciones.

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

Para ver la memoria total que consumen los asignadores del 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;

El conjunto de resultados es el siguiente:

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