Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Relata os consumidores de memória no nível de banco de dados no mecanismo de banco de dados OLTP na memória. A exibição retorna uma linha para cada consumidor de memória que o mecanismo de banco de dados usa.
Para obter mais informações, consulte OLTP na memória (otimização na memória).
Aplica-se a: SQL Server (do SQL Server 2014 à versão atual). |
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:
|
memory_consumer_type_desc |
nvarchar(64) |
Tipo de consumidor de memória: VARHEAP, HASH ou PGPOOL.
|
memory_consumer_desc |
nvarchar(64) |
Descrição da instância do consumidor de memória:
|
object_id |
bigint |
A ID de objeto à qual a memória alocada está atribuída. Um valor negativo de objetos do sistema. |
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 somente 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. |
Comentários
Na saída, os alocadores nos níveis de banco de dados fazem referência a tabelas de usuário, índices e tabelas do sistema. VARHEAP com object_id = NULL refere-se à memória alocada para tabelas com colunas de tamanho variável.
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 permissão VIEW DATABASE, todas as colunas serão retornadas para as linhas nas tabelas nas quais você tiver permissão SELECT.
As tabelas do sistema são retornadas apenas para usuários com permissão VIEW DATABASE STATE.
Exemplos
-- memory consumers (database level)
SELECT OBJECT_NAME(object_id), *
FROM sys.dm_db_xtp_memory_consumers;
Cenário de uso
-- memory consumers (database level)
select convert(char(10), object_name(object_id)) as Name,
convert(char(10),memory_consumer_type_desc ) as memory_consumer_type_desc, object_id,index_id, allocated_bytes, used_bytes
from sys.dm_db_xtp_memory_consumers
Veja a saída com um subconjunto de colunas. Os alocadores nos níveis de banco de dados fazem referência a tabelas de usuário, índices e tabelas do sistema. O VARHEAP com object_id = NULL (a última linha) refere-se à memória alocada a linhas de dados das tabelas (no exemplo a seguir, é t1). Os bytes alocados, quando convertidos para MB, são 1340MB.
Name memory_consumer_type_desc object_id index_id allocated_bytes used_bytes
---------- ------------------------- ----------- ----------- -------------------- --------------------
t3 HASH 629577281 2 8388608 8388608
t2 HASH 597577167 2 8388608 8388608
t1 HASH 565577053 2 1048576 1048576
NULL HASH -6 1 2048 2048
NULL VARHEAP -6 NULL 0 0
NULL HASH -5 3 8192 8192
NULL HASH -5 2 8192 8192
NULL HASH -5 1 8192 8192
NULL HASH -4 1 2048 2048
NULL VARHEAP -4 NULL 0 0
NULL HASH -3 1 2048 2048
NULL HASH -2 2 8192 8192
NULL HASH -2 1 8192 8192
NULL VARHEAP -2 NULL 196608 26496
NULL HASH 0 1 2048 2048
NULL PGPOOL 0 NULL 0 0
NULL VARHEAP NULL NULL 1405943808 1231220560
(17 row(s) affected)
A memória total alocada e usada dessa DMV é a mesma que o nível do objeto em sys.dm_db_xtp_table_memory_stats (Transact-SQL).
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
total_allocated_MB total_used_MB
-------------------- --------------------
1358 1191
Consulte também
Conceitos
Exibições de gerenciamento dinâmico da tabela com otimização de memória (Transact-SQL)