Partilhar via


sys.dm_xtp_system_memory_consumers (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Relata consumidores de memória no nível do sistema para In-Memory OLTP. A memória para esses consumidores vem do pool padrão (quando a alocação está no contexto de um thread de 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, consulte In-Memory OLTP (In-Memory Optimization).

Nome da coluna Tipo Description
memory_consumer_id bigint ID interno para o 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 um lookaside do sistema.

2 - VARHEAP: Rastreia o consumo de memória para uma pilha de comprimento variável.

4 - Pool de páginas de E/S: Rastreia o consumo de memória de um pool de páginas do sistema usado para operações de E/S.
memory_consumer_type_desc Nvarchar(16) A descrição do tipo de consumidor de memória:

0 - Não deve ser exibido

1 - OLHAR

2 - VARHEAP

4º - PGPOOL
memory_consumer_desc nvarchar(64) Descrição da instância do consumidor de memória:

VARHEAP:
Pilha do sistema. Finalidade geral. Atualmente usado apenas para alocar itens de trabalho de coleta de lixo.
-OU-
Lookaside pilha. Usado por lookasides quando o número de itens contidos na lista lookaside atinge um limite pré-determinado (geralmente cerca de 5.000 itens).

PGPOOL: Para pools de sistemas de E/S há três tamanhos diferentes: pool de páginas do System 4K, pool de páginas do System 64-K e pool de páginas do System 256-K.
lookaside_id bigint A ID do provedor de memória lookaside local de thread.
pagepool_id bigint A ID do provedor de memória do pool de páginas local de thread.
allocated_bytes bigint Número de bytes reservados a este consumidor.
used_bytes bigint Bytes utilizados por este consumidor. Aplica-se apenas a consumidores de memória 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 dotaçõ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 O número de partições de superbloco para este consumidor de memória. Para obter mais informações, consulte Fragmentação de memória.
sizeclass_count int O número de classes de tamanho de superbloco para este consumidor de memória. Fragmentação da memória.
min_sizeclass int Apenas para uso interno.
max_sizeclass int Apenas para uso interno.
memory_consumer_address Varbinary Endereço interno do consumidor.

Permissions

Requer permissões VIEW SERVER STATE no servidor.

Permissões para SQL Server 2022 e posterior

Requer a permissão VIEW SERVER PERFORMANCE STATE no servidor.

Observações

No SQL Server 2022 (16.x), esse DMV tem colunas adicionais específicas para melhorias de memória de metadados do TempDB otimizados para memória.

Examples

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 transações, olhe para o lado.

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 pelos 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;

Aqui está o conjunto de resultados.

total_allocated_MB   total_used_MB
-------------------- --------------------
2                    2