Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
Reporta os consumidores de memória ao nível da base de dados no In-Memory motor de base de dados OLTP. A vista devolve uma linha para cada consumidor de memória que o motor de base de dados utiliza. Use este IMT para ver como a memória está distribuída entre diferentes objetos internos.
Para obter mais informações, consulte In-Memory visão geral do OLTP e cenários de uso.
Observação
A saída desta vista de gestão dinâmica do sistema pode ser diferente, dependendo da versão do SQL Server instalada.
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
memory_consumer_id |
bigint | ID (interno) do consumidor de memória. |
memory_consumer_type |
int | O tipo de consumidor de memória: 0 = Agregação. (Agrega a utilização de memória de dois ou mais consumidores. Não devia ser exibido.) 2 = VARHEAP (Acompanha o consumo de memória para um heap de comprimento variável.)3 = HASH (Acompanha o consumo de memória para um índice.)4 = PGPOOL (pool de páginas de base de dados): Regista o consumo de memória para um pool de páginas de base de dados utilizado para operações em tempo de execução. Por exemplo, variáveis de tabela e algumas varreduras serializáveis. Existe apenas um consumidor de memória deste tipo por base 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 - VARHEAP3 - HASH4 - PGPOOL |
memory_consumer_desc |
Nvarchar(64) | Descrição da instância do consumidor de memória. Para mais informações, consulte a tabela que se segue. |
object_id |
bigint | O ID do objeto ao qual a memória alocada é atribuída. Um valor negativo para objetos do sistema. |
xtp_object_id |
bigint | O In-Memory ID de objeto OLTP que corresponde à tabela otimizada para memória. |
index_id |
int | O ID do índice do consumidor (se existir). NULL para tabelas base. |
allocated_bytes |
bigint | Número de bytes reservados a este consumidor. |
used_bytes |
bigint | Bytes utilizados por este consumidor. Aplica-se apenas a VARHEAP. |
allocation_count |
int | Número de dotações. |
partition_count |
int | Apenas para uso interno. |
sizeclass_count |
int | Apenas para uso interno. |
min_sizeclass |
int | Apenas para uso interno. |
max_sizeclass |
int | Apenas para uso interno. |
memory_consumer_address |
Varbinary | Endereço interno do consumidor. Apenas para uso interno. |
A tabela seguinte descreve os consumidores de memória especificados na memory_consumer_type coluna:
| Consumidor de memória | Description | Tipo |
|---|---|---|
256K page pool |
Pool de memória usado durante a atividade de checkpoint. | PGPOOL |
4K page pool |
Pool de memória usado durante a atividade de checkpoint. | PGPOOL |
Checkpoint table |
Apenas para uso interno. | VARHEAP |
Ckpt file table |
Apenas para uso interno. | VARHEAP |
Ckpt file watermark table |
Apenas para uso interno. | VARHEAP |
Database internal heap |
Usado para alocar dados da base de dados que são incluídos em dumps de memória e que não incluem dados do utilizador. | VARHEAP |
Database user heap |
Usado para alocar dados de utilizador para uma base de dados (linhas). | VARHEAP |
Encryption table |
Apenas para uso interno. | VARHEAP |
Hash index |
Regista o consumo de memória para um índice. Indica object_id a tabela e o index_id do próprio índice de hash. |
HASH |
Large Rows File table |
Apenas para uso interno. | VARHEAP |
LOB Page Allocator |
Memória heap usada por linhas grandes. | VARHEAP |
Logical range index partition table |
Apenas para uso interno. | VARHEAP |
Logical root fragment table |
Apenas para uso interno. | VARHEAP |
Logical Root table |
Apenas para uso interno. | VARHEAP |
Logical Sequence Object table |
Apenas para uso interno. | VARHEAP |
Physical range index partition table |
Apenas para uso interno. | VARHEAP |
Physical root fragment table |
Apenas para uso interno. | VARHEAP |
Physical Root table |
Apenas para uso interno. | VARHEAP |
Physical Sequence object table |
Apenas para uso interno. | VARHEAP |
Range index heap |
Heap privado usado pelo índice de intervalos para alocar páginas em árvore Bw. | VARHEAP |
Storage internal heap |
Apenas para uso interno. | VARHEAP |
Storage user heap |
Apenas para uso interno. | VARHEAP |
Table heap |
Memória de heap usada por In-Memory tabelas. | VARHEAP |
Tail cache 256K page pool |
Apenas para uso interno. | PGPOOL |
Tx Segment table |
Apenas para uso interno. | VARHEAP |
Observações
Quando uma tabela otimizada para memória tem um índice columnstore, o sistema utiliza algumas tabelas internas, que consomem alguma memória, para rastrear os dados do índice columnstore. Para detalhes sobre estas tabelas internas e consultas de exemplo que mostram o seu consumo de memória, veja sys.memory_optimized_tables_internal_attributes (Transact-SQL).
Permissions
Todas as linhas são devolvidas se tiver permissão VER ESTADO DA BASE DE DADOS na base de dados atual. Caso contrário, um conjunto de linhas vazio é devolvido.
Se não tiver permissão VER BASE de DADOS, todas as colunas são devolvidas para linhas em tabelas para as quais tem permissão SELECT.
No SQL Server 2019 (15.x) e versões anteriores, as tabelas do sistema são devolvidas apenas para utilizadores com permissão VIEW DATABASE STATE.
Para o SQL Server 2022 (16.x) e versões posteriores, é necessário obter permissão VIEW DATABASE PERFORMANCE STATE na base de dados.
Examples
Consultar os consumidores de memória na base de dados atual
Execute a seguinte consulta na base de dados de exemplo WideWorldImporters , que contém tabelas otimizadas para 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;
Aqui está 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 utilizada a partir deste 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;
Aqui está o conjunto de resultados.
total_allocated_MB total_used_MB
------------------ --------------------
92 51
Conteúdo relacionado
- Introdução às tabelas Memory-Optimized
- Memory-Optimized Vistas de Gestão Dinâmica da Tabela (Transact-SQL)
- In-Memory visão geral do OLTP e cenários de uso
- Otimizar o desempenho usando tecnologias na memória no Banco de Dados SQL do Azure
- Otimizar o desempenho usando tecnologias na memória no Azure SQL Managed Instance