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