sys.dm_os_memory_objects (Transact-SQL)

Retorna os objetos de memória atualmente alocados pelo SQL Server. sys.dm_os_memory_objects é usado basicamente para identificar possíveis vazamentos de memória.

Nome da coluna

Tipo de dados

Descrição

memory_object_address

varbinary(8)

Endereço do objeto de memória. Não é anulável.

parent_address

varbinary(8)

Endereço do objeto de memória pai. É anulável.

pages_allocated_count

int

Número de páginas que são alocadas por esse objeto. Não é anulável.

creation_options

int

Somente para uso interno. É anulável.

bytes_used

bigint

Somente para uso interno. É anulável.

type

nvarchar(60)

Tipo de objeto de memória.

Indica um componente ao qual esse objeto de memória pertence ou a função do objeto de memória. É anulável.

name

varchar(128)

Somente para uso interno. É anulável.

memory_node_id

smallint

ID de um nó de memória que está sendo usado por esse objeto de memória. Não é anulável.

creation_time

datetime

Somente interno. NULLABLE.

page_size_in_bytes

int

Tamanho das páginas alocadas por esse objeto. Não é anulável.

max_pages_allocated_count

int

Número máximo de páginas alocadas por esse objeto de memória. Não é anulável.

page_allocator_address

varbinary(8)

Endereço de memória do alocador de página. Não é anulável. Para obter mais informações, consulte sys.dm_os_memory_clerks (Transact-SQL).

creation_stack_address

varbinary(8)

Somente para uso interno. É anulável.

sequence_num

int

Somente para uso interno. É anulável.

Permissões

Requer a permissão VIEW SERVER STATE no servidor.

Comentários

Os objetos de memória são heaps. Eles fornecem alocações que possuem uma granularidade maior do que a fornecida pelos administradores de memória. Os componentes do SQL Server usam objetos de memória em vez de administradores de memória. Os objetos de memória usam a interface do alocador de página do administrador de memória para alocar páginas. Eles não usam interfaces de memória virtuais ou compartilhadas. Dependendo dos padrões de alocação, os componentes podem criar tipos diferentes de objetos de memória para alocar regiões de tamanho arbitrário.

O tamanho de página típico para um objeto de memória é 8 KB. Entretanto, objetos de memória incrementais podem ter tamanhos de página que variam de 512 bytes a 8 kilobytes.

ObservaçãoObservação

O tamanho de página não é uma alocação máxima. Na verdade, o tamanho de página é a granularidade de alocação com suporte oferecida por um alocador de página e é implementado por um administrador de memória. É possível solicitar alocações de 16 KB ou mais dos objetos de memória; a solicitação será direcionada ao alocador de várias páginas do nó de memória.

Exemplos

O exemplo a seguir retorna a quantidade de memória alocada em cada tipo de objeto de memória.

SELECT SUM (pages_allocated_count * page_size_in_bytes) as 'Bytes Used', type 
FROM sys.dm_os_memory_objects
GROUP BY type 
ORDER BY 1 DESC;
GO