sys.dm_os_memory_objects(Transact-SQL)
SQL Server에 의해 현재 할당된 메모리 개체를 반환합니다. sys.dm_os_memory_objects는 주로 메모리 사용을 분석하고 발생 가능한 메모리 손실을 확인하는 데 사용됩니다.
열 이름 |
데이터 형식 |
설명 |
---|---|---|
memory_object_address |
varbinary(8) |
메모리 개체의 주소입니다. Null을 허용하지 않습니다. |
parent_address |
varbinary(8) |
상위 메모리 개체의 주소입니다. Null을 허용합니다. |
pages_allocated_count |
int |
이 개체에서 할당한 페이지 수입니다. Null을 허용하지 않습니다. |
creation_options |
int |
내부적으로만 사용됩니다. Null을 허용합니다. |
bytes_used |
bigint |
내부적으로만 사용됩니다. Null을 허용합니다. |
type |
nvarchar(60) |
메모리 개체의 유형입니다. 이 메모리 개체가 속한 구성 요소 또는 메모리 개체의 기능을 나타냅니다. Null을 허용합니다. |
name |
varchar(128) |
내부적으로만 사용됩니다. Null을 허용합니다. |
memory_node_id |
smallint |
이 메모리 개체에서 사용하고 있는 메모리 노드의 ID입니다. Null을 허용하지 않습니다. |
creation_time |
datetime |
내부 전용입니다. NULL을 허용합니다. |
page_size_in_bytes |
int |
이 개체에서 할당한 페이지의 크기입니다. Null을 허용하지 않습니다. |
max_pages_allocated_count |
int |
이 메모리 개체에서 할당한 최대 페이지 수입니다. Null을 허용하지 않습니다. |
page_allocator_address |
varbinary(8) |
페이지 할당자의 메모리 주소입니다. Null을 허용하지 않습니다. 자세한 내용은 sys.dm_os_memory_clerks(Transact-SQL)를 참조하십시오. |
creation_stack_address |
varbinary(8) |
내부적으로만 사용됩니다. Null을 허용합니다. |
sequence_num |
int |
내부적으로만 사용됩니다. Null을 허용합니다. |
사용 권한
서버에 대한 VIEW SERVER STATE 권한이 필요합니다.
주의
메모리 개체는 힙으로, 메모리 클럭보다 세분화된 할당 기능을 제공합니다. SQL Server 구성 요소는 메모리 클럭 대신 메모리 개체를 사용합니다. 메모리 개체는 메모리 클럭의 페이지 할당자 인터페이스를 사용하여 페이지를 할당합니다. 메모리 개체는 가상 또는 공유 메모리 인터페이스를 사용하지 않습니다. 구성 요소는 할당 패턴에 따라 여러 다른 유형의 메모리 개체를 만들어 임의의 크기를 가진 영역을 할당할 수 있습니다.
메모리 개체의 일반적인 페이지 크기는 8KB입니다. 하지만 증분 메모리 개체는 512바이트와 8KB 사이의 페이지 크기를 가질 수 있습니다.
[!참고]
페이지 크기는 최대 할당이 아닙니다. 대신에 페이지 크기는 페이지 할당자에서 지원하고 메모리 클럭에서 구현하는 할당 세분성을 지원합니다. 메모리 개체에서 16KB 이상의 할당을 요청할 수 있으며 요청은 결과적으로 메모리 노드의 다중 페이지 할당자에게 전달됩니다.
예
다음 예에서는 각 메모리 개체 유형에서 할당한 메모리를 반환합니다.
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