sys.dm_db_xtp_memory_consumers (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance
Informa de los consumidores de memoria de nivel de base de datos en el motor de base de datos OLTP en memoria. La vista devuelve una fila para cada consumidor de memoria que el motor de base de datos utiliza. Use esta DMV para ver cómo se distribuye la memoria entre diferentes objetos internos.
Para obtener más información, consulte Introducción a OLTP en memoria y escenarios de uso.
Nota:
La salida de esta vista de administración dinámica del sistema puede ser diferente, en función de la versión de SQL Server instalada.
Nombre de la columna | Tipo de datos | Descripción |
---|---|---|
memory_consumer_id |
bigint | Identificador (interno) del consumidor de memoria. |
memory_consumer_type |
int | Tipo de consumidor de memoria: 0 = Agregación. (Agrega el uso de memoria de dos o más consumidores. No debería mostrarse). 2 = VARHEAP (realiza un seguimiento del consumo de memoria para un montón de longitud variable).3 = HASH (realiza un seguimiento del consumo de memoria de un índice).4 = PGPOOL (Grupo de páginas de base de datos: realiza un seguimiento del consumo de memoria de un grupo de páginas de base de datos que se usa para las operaciones en tiempo de ejecución. Por ejemplo, las variables de tabla y algunos exámenes serializables. Solo hay un consumidor de memoria de este tipo por base de datos). |
memory_consumer_type_desc |
nvarchar (64) | Tipo de consumidor de memoria: VARHEAP , HASH o PGPOOL .0 - (No se debe mostrar) 2- VARHEAP 3- HASH 4- PGPOOL |
memory_consumer_desc |
nvarchar (64) | Descripción de la instancia de consumidor de memoria. Para obtener más información, revise la tabla siguiente. |
object_id |
bigint | Identificador del objeto al que se atribuye la memoria asignada. Un valor negativo para los objetos del sistema. |
xtp_object_id |
bigint | Identificador de objeto OLTP en memoria que corresponde a la tabla optimizada para memoria. |
index_id |
int | El identificador de índice del consumidor (si existe). NULL para las tablas base. |
allocated_bytes |
bigint | Número de bytes reservados para el consumidor. |
used_bytes |
bigint | Bytes utilizados por el consumidor. Solo se aplica a VARHEAP . |
allocation_count |
int | Número de asignaciones. |
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. Solo para uso interno. |
En la tabla siguiente se describen los consumidores de memoria especificados en la memory_consumer_type
columna :
Consumidor de memoria | Descripción | Tipo |
---|---|---|
256K page pool |
Grupo de memoria usado durante la actividad del punto de comprobación. | PGPOOL |
4K page pool |
Grupo de memoria usado durante la actividad del punto de comprobación. | PGPOOL |
Checkpoint table |
Solo para uso interno. | VARHEAP |
Ckpt file table |
Solo para uso interno. | VARHEAP |
Ckpt file watermark table |
Solo para uso interno. | VARHEAP |
Database internal heap |
Se usa para asignar datos de base de datos que se incluyen en volcados de memoria y no incluyen datos de usuario. | VARHEAP |
Database user heap |
Se usa para asignar datos de usuario para una base de datos (filas). | VARHEAP |
Encryption table |
Solo para uso interno. | VARHEAP |
Hash index |
Realiza un seguimiento del consumo de memoria de un índice. object_id indica la tabla y el index_id del propio índice hash. |
HASH |
Large Rows File table |
Solo para uso interno. | VARHEAP |
LOB Page Allocator |
Memoria del montón usada por filas grandes. | VARHEAP |
Logical range index partition table |
Solo para uso interno. | VARHEAP |
Logical root fragment table |
Solo para uso interno. | VARHEAP |
Logical Root table |
Solo para uso interno. | VARHEAP |
Logical Sequence Object table |
Solo para uso interno. | VARHEAP |
Physical range index partition table |
Solo para uso interno. | VARHEAP |
Physical root fragment table |
Solo para uso interno. | VARHEAP |
Physical Root table |
Solo para uso interno. | VARHEAP |
Physical Sequence object table |
Solo para uso interno. | VARHEAP |
Range index heap |
Montón privado usado por índice de intervalo para asignar páginas de árbol Bw. | VARHEAP |
Storage internal heap |
Solo para uso interno. | VARHEAP |
Storage user heap |
Solo para uso interno. | VARHEAP |
Table heap |
Memoria del montón usada por las tablas en memoria. | VARHEAP |
Tail cache 256K page pool |
Solo para uso interno. | PGPOOL |
Tx Segment table |
Solo para uso interno. | VARHEAP |
Comentarios
Cuando una tabla optimizada para memoria tiene un índice de almacén de columnas, el sistema usa algunas tablas internas, que consumen memoria, para realizar un seguimiento de los datos del índice de almacén de columnas. Para obtener más información sobre estas tablas internas y consultas de ejemplo que muestran su consumo de memoria, consulte sys.memory_optimized_tables_internal_attributes (Transact-SQL).
Permisos
Se devuelven todas las filas si tiene el permiso VIEW DATABASE STATE en la base de datos actual. De lo contrario, se devuelve un conjunto de filas vacío.
Si no tiene el permiso VIEW DATABASE, se devuelven todas las columnas para las filas de las tablas en las que tiene permiso SELECT.
En SQL Server 2019 (15.x) y versiones anteriores, las tablas del sistema solo se devuelven para los usuarios con el permiso VIEW DATABASE STATE.
Para SQL Server 2022 (16.x) y versiones posteriores, necesita el permiso VIEW DATABASE PERFORMANCE STATE en la base de datos.
Ejemplos
Consulta de consumidores de memoria en la base de datos actual
Ejecute la consulta siguiente en la base de datos de ejemplo WideWorldImporters
, que contiene tablas optimizadas para memoria:
SELECT CONVERT(CHAR(10), OBJECT_NAME(object_id)) AS Name,
memory_consumer_type_desc,
memory_consumer_desc,
object_id,
index_id,
allocated_bytes,
used_bytes
FROM sys.dm_db_xtp_memory_consumers;
Este es el conjunto de resultados.
Name memory_consumer_type_desc memory_consumer_desc object_id index_id allocated_bytes used_bytes
---------- ------------------------- -------------------------------------- ----------- ----------- ----------------- ------------
NULL VARHEAP Range index heap -15 1 131072 176
NULL VARHEAP Physical range index partition table -15 NULL 0 0
NULL VARHEAP Range index heap -14 2 131072 192
NULL VARHEAP Range index heap -14 1 131072 208
NULL VARHEAP Large Rows File table -14 NULL 0 0
NULL HASH Hash index -13 1 2048 2048
NULL VARHEAP Encryption table -13 NULL 0 0
NULL HASH Hash index -10 2 32768 32768
NULL HASH Hash index -10 1 32768 32768
NULL VARHEAP Tx Segment table -10 NULL 65536 544
NULL HASH Hash index -11 1 32768 32768
NULL VARHEAP Checkpoint table -11 NULL 131072 320
NULL HASH Hash index -12 1 8192 8192
NULL VARHEAP Ckpt file table -12 NULL 131072 3120
NULL HASH Hash index -9 1 2048 2048
NULL VARHEAP Ckpt file watermark table -9 NULL 131072 1280
NULL VARHEAP Range index heap -7 1 262144 976
NULL VARHEAP Physical Sequence Object table -7 NULL 65536 864
NULL HASH Hash index -3 1 2048 2048
NULL VARHEAP Physical root fragment table -3 NULL 0 0
NULL HASH Hash index 0 2 8192 8192
NULL HASH Hash index 0 1 32768 32768
NULL VARHEAP Physical Root table NULL NULL 327680 12160
NULL PGPOOL Tail cache 256K page pool 0 NULL 262144 262144
NULL PGPOOL 256K page pool 0 NULL 35389440 18874368
NULL PGPOOL 64K page pool 0 NULL 131072 65536
NULL PGPOOL 4K page pool 0 NULL 49152 40960
NULL VARHEAP Storage internal heap NULL NULL 786432 4816
NULL VARHEAP Storage user heap NULL NULL 262144 22496
ColdRoomTe VARHEAP Range index heap 1179151246 3 196608 800
ColdRoomTe VARHEAP Range index heap 1179151246 2 196608 800
memory_opt VARHEAP Range index heap 1211151360 2 131072 208
VehicleTem VARHEAP Range index heap 1243151474 2 11796480 1181824
ColdRoomTe VARHEAP Table heap 1179151246 NULL 65536 384
memory_opt VARHEAP Table heap 1211151360 NULL 0 0
VehicleTem VARHEAP Table heap 1243151474 NULL 33423360 32802112
VehicleTem VARHEAP Range index heap 1243151474 2 131072 160
VehicleTem VARHEAP LOB Page Allocator 1243151474 NULL 0 0
VehicleTem VARHEAP Table heap 1243151474 NULL 0 0
NULL VARHEAP Range index heap -15 1 327680 176
NULL VARHEAP Logical range index partition table -15 NULL 0 0
NULL HASH Hash index -7 1 32768 32768
NULL VARHEAP Logical Sequence Object table -7 NULL 65536 600
NULL HASH Hash index -3 1 2048 2048
NULL VARHEAP Logical root fragment table -3 NULL 0 0
NULL HASH Hash index 0 1 32768 32768
NULL VARHEAP Logical Root table NULL NULL 327680 11120
NULL PGPOOL Tail cache 256K page pool 0 NULL 262144 0
NULL PGPOOL 256K page pool 0 NULL 10485760 0
NULL PGPOOL 64K page pool 0 NULL 131072 0
NULL PGPOOL 4K page pool 0 NULL 32768 0
NULL VARHEAP Database internal heap NULL NULL 1048576 8016
NULL VARHEAP Database user heap NULL NULL 65536 1024
La memoria total asignada y usada de esta DMV es la misma que el nivel de objeto en sys.dm_db_xtp_table_memory_stats.
SELECT SUM(allocated_bytes) / (1024 * 1024) AS total_allocated_MB,
SUM(used_bytes) / (1024 * 1024) AS total_used_MB
FROM sys.dm_db_xtp_memory_consumers;
Este es el conjunto de resultados.
total_allocated_MB total_used_MB
------------------ --------------------
92 51
Contenido relacionado
- Introducción a las tablas con optimización para memoria
- Vistas de administración dinámica de tablas optimizadas para memoria (Transact-SQL)
- Información general y escenarios de uso de OLTP en memoria
- Optimización del rendimiento mediante tecnologías en memoria en Azure SQL Database
- Optimización del rendimiento mediante tecnologías en memoria en Azure SQL Instancia administrada