Comparteix a través de


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, HASHo 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