sys.dm_xtp_system_memory_consumers (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure 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