Sdílet prostřednictvím


sys.dm_os_memory_objects (Transact-SQL)

Returns memory objects that are currently allocated by SQL Server. You can use sys.dm_os_memory_objects to analyze memory use and to identify possible memory leaks.

Column name

Data type

Description

memory_object_address

varbinary(8)

Address of the memory object. Is not nullable.

parent_address

varbinary(8)

Address of the parent memory object. Is nullable.

pages_in_bytes

bigint

Amount of memory in bytes that is allocated by this instance of the memory object. Is not nullable.

creation_options

int

Internal use only. Is nullable.

bytes_used

bigint

Internal use only. Is nullable.

type

nvarchar(60)

Type of memory object.

This indicates some component that this memory object belongs to, or the function of the memory object. Is nullable.

name

varchar(128)

Internal use only. Nullable.

memory_node_id

smallint

ID of a memory node that is being used by this memory object. Is not nullable.

creation_time

datetime

Internal use only. Is nullable.

page_size_in_bytes

int

Size of pages in bytes allocated by this object. Is not nullable.

max_pages_in_bytes

bigint

Maximum amount of memory ever used by this memory object. Is not nullable.

page_allocator_address

varbinary(8)

Memory address of page allocator. Is not nullable. For more information, see sys.dm_os_memory_clerks (Transact-SQL).

creation_stack_address

varbinary(8)

Internal use only. Is nullable.

sequence_num

int

Internal use only. Is nullable.

Permissions

Requires VIEW SERVER STATE permission on the server.

Remarks

Memory objects are heaps. They provide allocations that have a finer granularity than those provided by memory clerks. SQL Server components use memory objects instead of memory clerks. Memory objects use the page allocator interface of the memory clerk to allocate pages. Memory objects do not use virtual or shared memory interfaces. Depending on the allocation patterns, components can create different types of memory objects to allocate regions of arbitrary size.

The typical page size for a memory object is 8 KB. However, incremental memory objects can have page sizes that range from 512 bytes to 8 KB.

Note

Page size is not a maximum allocation. Instead, page size is allocation granularity that is supported by a page allocator and that is implemented by a memory clerk. You can request allocations greater than 8 KB from memory objects.

Compatibility Support

In SQL Server 2012, the following columns have been renamed.

Previous Column Name

New Column Name

pages_allocated_count

pages_in_bytes

max_pages_allocated_count

max_pages_in_bytes

Examples

The following example returns the amount of memory allocated by each memory object type.

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

See Also

Reference

Dynamic Management Views and Functions (Transact-SQL)

SQL Server Operating System Related Dynamic Management Views (Transact-SQL)

sys.dm_os_memory_clerks (Transact-SQL)