sys.dm_xtp_system_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 sistema para OLTP in-memory. A memória desses consumidores vêm do pool padrão (quando a alocação está no contexto de um thread do usuário) ou do pool interno (se a alocação estiver no contexto de um thread do sistema).
SELECT *
FROM sys.dm_xtp_system_memory_consumers;
Para obter mais informações, veja OLTP in-memory (otimização na memória).
Nome da coluna | Type | Descrição |
---|---|---|
memory_consumer_id | bigint | ID interna do consumidor de memória. |
memory_consumer_type | int | Um inteiro que representa o tipo do consumidor de memória com um dos seguintes valores: 0 - Não deve ser exibido. Agrega o uso de memória de dois ou mais consumidores. 1 – LOOKASIDE: rastreia o consumo de memória para a parte de um sistema. 2 – VARHEAP: rastreia o consumo de memória para um heap de comprimento variável. 4 – Pool da página E/S: rastreia o consumo de memória para um pool da página do sistema usado para operações de E/S. |
memory_consumer_type_desc | nvarchar(16) | A descrição do tipo do consumidor de memória: 0 - Não deve ser exibido 1 – LOOKASIDE 2 - VARHEAP 4 - PGPOOL |
memory_consumer_desc | nvarchar(64) | Descrição da instância do consumidor de memória: VARHEAP: Heap do sistema. Uso geral. Atualmente usado apenas para alocar itens de trabalho de coleta de lixo. -OU- A parte de heap. Usado por partes quando o número de itens contidos na lista de partes alcançar um valor predeterminado (normalmente em torno de 5.000 itens). PGPOOL: para pools do sistema de E/S, há três tamanhos diferentes: pool de páginas do sistema 4K, pool de páginas do sistema 64-K e pool de páginas do sistema 256-K. |
lookaside_id | bigint | A ID do provedor de memória de direções de local de thread. |
pagepool_id | bigint | A ID do provedor de memória do pool de páginas de local de thread. |
allocated_bytes | bigint | Número de bytes reservados para o consumidor. |
used_bytes | bigint | Bytes usados por este consumidor. Aplica-se somente a consumidores de memória de varheap. A partir do SQL Server 2022 (16.x), aplica-se a consumidores de memória varheap e lookside. |
allocation_count | int | Número de alocações. A partir do SQL Server 2022 (16.x), o número de alocações do heap do sistema para consumidores de memória lookside. |
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. |
Permissões
Requer as permissões VIEW SERVER STATE no servidor.
Permissões do SQL Server 2022 e posteriores
É necessária a permissão VIEW SERVER PERFORMANCE STATE no servidor.
Comentários
No SQL Server 2022 (16.x), essa DMV tem colunas adicionais específicas para melhorias de memória de metadados do TempDB com otimização de memória.
Exemplos
Este exemplo gera os consumidores de memória do sistema para a instância do 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;
A saída mostra todos os consumidores de memória no nível do sistema. Por exemplo, há consumidores para o registro de transações.
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 a memória total consumida por alocadores do 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;
Este é o conjunto de resultados.
total_allocated_MB total_used_MB
-------------------- --------------------
2 2
Conteúdo relacionado
- Exibições de gerenciamento dinâmico de tabela com otimização de memória (Transact-SQL)
- Erros de falta de memória de metadados tempdb com otimização de memória (HkTempDB)
- sys.sp_xtp_force_gc (Transact-SQL)
- sys.sp_xtp_checkpoint_force_garbage_collection (Transact-SQL)
- OLTP na memória (otimização na memória)