Compartilhar via


sys.dm_db_xtp_memory_consumers (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Relata os consumidores de memória no nível do banco de dados no mecanismo de banco de dados OLTP in-memory. A exibição retorna uma linha para cada consumidor de memória que o mecanismo de banco de dados usa. Use essa DMV para ver como a memória é distribuída entre diferentes objetos internos.

Para obter mais informações, consulte Visão geral do OLTP in-memory e cenários de uso.

Observação

A saída dessa exibição de gerenciamento dinâmico do sistema pode ser diferente, dependendo da versão do SQL Server instalada.

Nome da coluna Tipo de dados Descrição
memory_consumer_id bigint ID (interna) do consumidor de memória.
memory_consumer_type int O tipo de consumidor de memória:

0 = Agregação. (Agrega o uso de memória de dois ou mais consumidores. Ele não deve ser exibido.)

2 = VARHEAP (Rastreia o consumo de memória para um heap de comprimento variável.)

3 = HASH (Rastreia o consumo de memória de um índice.)

4 = PGPOOL (pool de páginas do banco de dados: rastreia o consumo de memória de um pool de páginas do banco de dados usado para operações de tempo de execução. Por exemplo, variáveis de tabela e algumas verificações serializáveis. Há apenas um consumidor de memória desse tipo por banco de dados.)
memory_consumer_type_desc nvarchar(64) Tipo de consumidor de memória: VARHEAP, HASH, ou PGPOOL.

0 - (Não deve ser exibido)
2 - VARHEAP
3- HASH
4- PGPOOL
memory_consumer_desc nvarchar(64) Descrição da instância do consumidor de memória. Para obter mais informações, examine a tabela a seguir.
object_id bigint A ID de objeto à qual a memória alocada está atribuída. Um valor negativo de objetos do sistema.
xtp_object_id bigint A ID do objeto OLTP in-memory que corresponde à tabela com otimização de memória.
index_id int A ID de índice do consumidor (se houver). NULL para tabelas base.
allocated_bytes bigint Número de bytes reservados para o consumidor.
used_bytes bigint Bytes usados por este consumidor. Aplica-se apenas a VARHEAP.
allocation_count int Número de alocações.
partition_count int Somente para uso interno.
sizeclass_count int Somente para uso interno.
min_sizeclass int Somente para uso interno.
max_sizeclass int Somente para uso interno.
memory_consumer_address varbinary Endereço interno do consumidor. Somente para uso Interno.

A tabela a seguir descreve os consumidores de memória especificados na memory_consumer_type coluna:

Consumidor de memória Descrição Type
256K page pool Pool de memória usado durante a atividade de ponto de verificação. PGPOOL
4K page pool Pool de memória usado durante a atividade de ponto de verificação. PGPOOL
Checkpoint table Somente para uso interno. VARHEAP
Ckpt file table Somente para uso interno. VARHEAP
Ckpt file watermark table Somente para uso interno. VARHEAP
Database internal heap Usado para alocar dados de banco de dados incluídos em despejos de memória e não incluem dados do usuário. VARHEAP
Database user heap Usado para alocar dados do usuário para um banco de dados (linhas). VARHEAP
Encryption table Somente para uso interno. VARHEAP
Hash index Controla o consumo de memória de um índice. O object_id indica a tabela e o index_id do próprio índice de hash. HASH
Large Rows File table Somente para uso interno. VARHEAP
LOB Page Allocator Memória de heap usada por linhas grandes. VARHEAP
Logical range index partition table Somente para uso interno. VARHEAP
Logical root fragment table Somente para uso interno. VARHEAP
Logical Root table Somente para uso interno. VARHEAP
Logical Sequence Object table Somente para uso interno. VARHEAP
Physical range index partition table Somente para uso interno. VARHEAP
Physical root fragment table Somente para uso interno. VARHEAP
Physical Root table Somente para uso interno. VARHEAP
Physical Sequence object table Somente para uso interno. VARHEAP
Range index heap Heap privado usado pelo índice de intervalo para alocar páginas da árvore Bw. VARHEAP
Storage internal heap Somente para uso interno. VARHEAP
Storage user heap Somente para uso interno. VARHEAP
Table heap Memória heap usada por tabelas na memória. VARHEAP
Tail cache 256K page pool Somente para uso interno. PGPOOL
Tx Segment table Somente para uso interno. VARHEAP

Comentários

Quando uma tabela com otimização de memória tem um índice columnstore, o sistema usa algumas tabelas internas, que consomem alguma memória, para controlar dados para o índice columnstore. Para obter detalhes sobre essas tabelas internas e consultas de exemplo que mostram seu consumo de memória, consulte sys.memory_optimized_tables_internal_attributes (Transact-SQL).

Permissões

Todas as linhas são retornadas se você tiver a permissão VIEW DATABASE STATE no banco de dados atual. Caso contrário, um conjunto de linhas vazio será retornado.

Se você não tiver a permissão VIEW DATABASE, todas as colunas serão retornadas para linhas em tabelas nas quais você tem a permissão SELECT.

No SQL Server 2019 (15.x) e versões anteriores, as tabelas do sistema são retornadas apenas para usuários com a permissão VIEW DATABASE STATE.

Para SQL Server 2022 (16.x) e versões posteriores, você precisa da permissão VIEW DATABASE PERFORMANCE STATE no banco de dados.

Exemplos

Consumidores de memória de consulta no banco de dados atual

Execute a seguinte consulta no banco de dados de exemplo WideWorldImporters , que contém tabelas com otimização de memória:

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;

Veja a seguir o 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

A memória total alocada e usada dessa DMV é igual ao nível do objeto em 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;

Veja a seguir o conjunto de resultados.

total_allocated_MB total_used_MB
------------------ --------------------
92                 51