다음을 통해 공유


sys.dm_os_memory_clerks(Transact-SQL)

SQL Server 인스턴스에서 현재 활성 상태인 모든 메모리 클럭을 반환합니다.

열 이름

데이터 형식

설명

memory_clerk_address

varbinary(8)

메모리 클럭의 고유 메모리 주소입니다. 이것은 기본 키 열입니다. Null을 허용하지 않습니다.

type

nvarchar(60)

메모리 클럭의 유형입니다. 모든 클럭은 CLR 클럭 MEMORYCLERK_SQLCLR와 같은 특정한 유형을 가지고 있습니다. Null을 허용하지 않습니다.

name

nvarchar(256)

이 메모리 클럭의 내부적으로 할당된 이름입니다. 모든 구성 요소에는 특정 유형의 여러 메모리 클럭이 있을 수 있습니다. 따라서 구성 요소에서 이름을 지정하여 같은 유형의 메모리 클럭을 구분하도록 선택할 수 있습니다. Null을 허용하지 않습니다.

memory_node_id

smallint

메모리 노드의 ID입니다. Null을 허용하지 않습니다.

single_pages_kb

bigint

할당된 단일 페이지 메모리(KB)입니다. 이것은 메모리 노드의 단일 페이지 할당자를 사용하여 할당된 메모리입니다. 이 단일 페이지 할당자는 버퍼 풀에서 직접 페이지를 가져옵니다. Null을 허용하지 않습니다.

multi_pages_kb

bigint

할당된 다중 페이지 메모리(KB)입니다. 이것은 메모리 노드의 다중 페이지 할당자를 사용하여 할당된 메모리입니다. 이 메모리는 버퍼 풀 외부에 할당되며 메모리 노드의 가상 할당자를 사용합니다. Null을 허용하지 않습니다.

virtual_memory_reserved_kb

bigint

메모리 클럭이 예약한 가상 메모리입니다. 이것은 이 클럭을 사용하는 구성 요소가 직접 예약한 메모리입니다. 대부분의 경우 버퍼 풀만 해당 메모리 클럭을 사용하여 직접 가상 주소 공간을 예약합니다. Null을 허용하지 않습니다.

virtual_memory_committed_kb

bigint

메모리 클럭이 커밋한 가상 메모리입니다. 이것은 클럭이 커밋한 메모리입니다. 커밋된 메모리의 양은 항상 예약된 메모리보다 적어야 합니다. NULL을 허용하지 않습니다.

awe_allocated_kb

bigint

AWE(Address Windowing Extensions)를 사용하여 메모리 클럭이 할당한 메모리입니다. SQL Server에서는 AWE가 설정된 경우에 한하여 버퍼 풀 클럭(MEMORYCLERK_SQLBUFFERPOOL)만 이 메커니즘을 사용합니다. Null을 허용하지 않습니다.

shared_memory_reserved_kb

bigint

메모리 클럭이 예약한 공유 메모리입니다. 공유 메모리와 파일 매핑에 사용하도록 예약된 메모리입니다. Null을 허용하지 않습니다.

shared_memory_committed_kb

bigint

메모리 클럭이 커밋한 공유 메모리입니다. Null을 허용하지 않습니다.

page_size_bytes

bigint

메모리 클럭이 할당할 수 있는 페이지의 크기입니다. 하나의 크기, 즉 8192바이트만 지원됩니다. Null을 허용하지 않습니다.

page_allocator_address

varbinary(8)

페이지 할당자의 주소입니다. 이 주소는 메모리 클럭마다 고유하며 sys.dm_os_memory_objects에서 이 클럭에 바인딩된 메모리 개체를 찾는 데 사용될 수 있습니다. Null을 허용하지 않습니다.

host_address

varbinary(8)

이 메모리 클럭에 대한 호스트의 메모리 주소입니다. 자세한 내용은 sys.dm_os_hosts(Transact-SQL)를 참조하십시오. Microsoft SQL Server Native Client 등의 구성 요소는 호스트 인터페이스를 통해 SQL Server 메모리 리소스에 액세스합니다.

0x00000000 = 메모리 클럭이 SQL Server에 속합니다.

Null을 허용하지 않습니다.

사용 권한

서버에 대한 VIEW SERVER STATE 권한이 필요합니다.

주의

SQL Server 메모리 관리자의 계층 구조는 세 계층으로 이루어져 있습니다. 계층 구조의 맨 아래에는 메모리 노드가 있습니다. 다음 수준은 메모리 클럭, 메모리 캐시 및 메모리 풀로 구성됩니다. 마지막 계층은 메모리 개체로 구성됩니다. 이러한 개체는 일반적으로 SQL Server 인스턴스에서 메모리를 할당하는 데 사용됩니다.

메모리 노드는 하위 수준 할당자에 대한 인터페이스와 구현을 제공합니다. SQL Server 내에서는 메모리 클럭만 메모리 노드에 액세스할 수 있습니다. 메모리 클럭은 메모리 노드 인터페이스에 액세스하여 메모리를 할당합니다. 또한 진단을 위해 메모리 노드는 클럭을 사용하여 할당된 메모리를 추적합니다. 상당량의 메모리를 할당하는 모든 구성 요소는 자체 메모리 클럭을 만들고 클럭 인터페이스를 사용하여 메모리를 모두 할당해야 합니다. 구성 요소는 SQL Server가 시작될 때 해당 클럭을 만듭니다.