sys.dm_os_memory_objects (Transact-SQL)

Devuelve objetos de memoria asignados actualmente por SQL Server. sys.dm_os_memory_objects se utiliza principalmente para analizar el uso de la memoria y para identificar posibles pérdidas de memoria.

Nombre de columna

Tipo de datos

Descripción

memory_object_address

varbinary(8)

Dirección del objeto de memoria. No acepta valores NULL.

parent_address

varbinary(8)

Dirección del objeto de memoria primario. Acepta valores NULL.

pages_allocated_count

int

Número de páginas asignadas por este objeto. No acepta valores NULL.

creation_options

int

Sólo para uso interno. Acepta valores NULL.

bytes_used

bigint

Sólo para uso interno. Acepta valores NULL.

type

nvarchar(60)

Tipo de objeto de memoria.

Indica un componente al que pertenece este objeto de memoria, o la función del objeto de memoria. Acepta valores NULL.

name

varchar(128)

Sólo para uso interno. Acepta valores NULL.

memory_node_id

smallint

Id. de un nodo de memoria que utiliza este objeto de memoria. No acepta valores NULL.

creation_time

datetime

Sólo para uso interno. Acepta valores NULL.

page_size_in_bytes

int

Tamaño de las páginas asignadas por este objeto. No acepta valores NULL.

max_pages_allocated_count

int

Número máximo de páginas asignadas por este objeto de memoria. No acepta valores NULL.

page_allocator_address

varbinary(8)

Dirección de memoria del asignador de la página. No acepta valores NULL. Para obtener más información, vea sys.dm_os_memory_clerks (Transact-SQL).

creation_stack_address

varbinary(8)

Sólo para uso interno. Acepta valores NULL.

sequence_num

int

Sólo para uso interno. Acepta valores NULL.

Permisos

Requiere el permiso VIEW SERVER STATE en el servidor.

Notas

Los objetos de memoria son montones. Proporcionan asignaciones con una granularidad más fina que las que proporcionan los empleados de memoria. Los componentes de SQL Server utilizan objetos de memoria en lugar de empleados de memoria. Los objetos de memoria utilizan la interfaz del asignador de la página del empleado de memoria para asignar páginas. Los objetos de memoria no utilizan interfaces de memoria virtual o compartida. Dependiendo de los patrones de asignación, los componentes pueden crear diferentes tipos de objetos de memoria para asignar regiones de tamaño arbitrario.

El tamaño de página típico para un objeto de memoria es de 8 KB. No obstante, los objetos de memoria incrementales pueden tener tamaños de página que van desde 512 bytes hasta 8 kilobytes.

[!NOTA]

El tamaño de página no tiene una asignación máxima. En su lugar, el tamaño de página es la granularidad de la asignación que admite una asignador de la página y que se implementa mediante un empleado de memoria. Puede solicitar asignaciones para objetos de memoria de 16 KB y mayores y la petición se dirigirá finalmente al asignador de páginas múltiples del nodo de memoria.

Ejemplos

En el siguiente ejemplo se devuelve la cantidad de memoria asignada por cada tipo de objeto de memoria.

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