sys.dm_os_memory_clerks(Transact-SQL)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)
SQL Server 인스턴스에서 현재 활성화된 모든 메모리 클럭의 집합을 반환합니다.
참고 항목
Azure Synapse Analytics 또는 PDW(Analytics Platform System)에서 이를 호출하려면 이름 sys.dm_pdw_nodes_os_memory_clerks 사용합니다. 이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.
열 이름 | 데이터 형식 | 설명 |
---|---|---|
memory_clerk_address | varbinary(8) | 메모리 클럭의 고유 메모리 주소를 지정합니다. 기본 키 열입니다. Null을 허용하지 않습니다. |
type | nvarchar(60) | 메모리 클럭의 유형을 지정합니다. 모든 서기에는 CLR 클럭 MEMORYCLERK_SQLCLR 같은 특정 유형이 있습니다. Null을 허용하지 않습니다. |
이름 | nvarchar(256) | 이 메모리 클럭의 내부적으로 할당된 이름을 지정합니다. 구성 요소에는 특정 유형의 여러 메모리 클럭이 있을 수 있습니다. 구성 요소는 특정 이름을 사용하여 동일한 유형의 메모리 클럭을 식별하도록 선택할 수 있습니다. Null을 허용하지 않습니다. |
memory_node_id | smallint | 메모리 노드의 ID를 지정합니다. Null을 허용하지 않습니다. |
single_pages_kb | bigint | 적용 대상: SQL Server 2008(10.0.x) ~ SQL Server 2008 R2(10.50.x). 자세한 내용은 SQL Server 2012(11.x)부터 메모리 관리 변경 내용을 참조하세요. |
pages_kb | bigint | 적용 대상: SQL Server 2012(11.x) 이상 이 메모리 클럭에 대해 할당된 페이지 메모리의 양을 KB(킬로바이트)로 지정합니다. Null을 허용하지 않습니다. |
multi_pages_kb | bigint | 적용 대상: SQL Server 2008(10.0.x) ~ SQL Server 2008 R2(10.50.x). 자세한 내용은 SQL Server 2012(11.x)부터 메모리 관리 변경 내용을 참조하세요. KB에 할당된 다중 페이지 메모리의 양입니다. 메모리 노드의 여러 페이지 할당자를 사용하여 할당된 메모리 양입니다. 이 메모리는 버퍼 풀 외부에서 할당되며 메모리 노드의 가상 할당자를 활용합니다. Null을 허용하지 않습니다. |
virtual_memory_reserved_kb | bigint | 메모리 클럭이 예약한 가상 메모리의 양을 지정합니다. Null을 허용하지 않습니다. |
virtual_memory_committed_kb | bigint | 메모리 클럭이 커밋하는 가상 메모리의 양을 지정합니다. 커밋된 메모리의 양은 항상 예약된 메모리보다 적어야 합니다. Null을 허용하지 않습니다. |
awe_allocated_kb | bigint | 실제 메모리에 잠겨 있고 운영 체제에서 페이징되지 않은 KB(킬로바이트)의 메모리 양을 지정합니다. Null을 허용하지 않습니다. |
shared_memory_reserved_kb | bigint | 메모리 클럭이 예약한 공유 메모리의 양을 지정합니다. 공유 메모리 및 파일 매핑에서 사용하도록 예약된 메모리 양입니다. Null을 허용하지 않습니다. |
shared_memory_committed_kb | bigint | 메모리 클럭에서 커밋하는 공유 메모리의 양을 지정합니다. Null을 허용하지 않습니다. |
page_size_in_bytes | bigint | 이 메모리 클럭에 대한 페이지 할당의 세분성을 지정합니다. 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을 허용하지 않습니다. |
pdw_node_id | int | 적용 대상: Azure Synapse Analytics, Analytics Platform System(PDW) 이 배포가 있는 노드의 식별자입니다. |
사용 권한
SQL Server에서 VIEW SERVER STATE
권한이 필요합니다.
Azure SQL Database Basic, S0 및 S1 서비스 목표 및 탄력적 풀 의 데이터베이스에는 서버 관리자 계정 또는 Microsoft Entra 관리자 계정이 필요합니다. 다른 모든 Azure SQL Database 서비스 목표에서는 데이터베이스에 VIEW DATABASE STATE
권한이 필요합니다.
SQL Server 2022 이상에 대한 사용 권한
서버에 대한 VIEW SERVER PERFORMANCE STATE 권한이 필요합니다.
설명
SQL Server 메모리 관리자는 3계층 계층 구조로 구성됩니다. 계층 구조의 맨 아래에는 메모리 노드가 있습니다. 중간 수준은 메모리 클럭, 메모리 캐시 및 메모리 풀로 구성됩니다. 최상위 계층은 메모리 개체로 구성됩니다. 이러한 개체는 SQL Server 인스턴스에서 메모리를 할당하는 데 사용됩니다.
메모리 노드는 하위 수준 할당자에 대한 인터페이스 및 구현을 제공합니다. SQL Server 내에서는 메모리 클럭만 메모리 노드에 액세스할 수 있습니다. 메모리 클럭은 메모리 노드 인터페이스에 액세스하여 메모리를 할당합니다. 또한 메모리 노드는 진단에 클럭을 사용하여 할당된 메모리를 추적합니다. 상당한 양의 메모리를 할당하는 모든 구성 요소는 자체 메모리 클럭을 만들고 클럭 인터페이스를 사용하여 모든 메모리를 할당해야 합니다. 구성 요소는 SQL Server가 시작될 때 해당 클럭을 만드는 경우가 많습니다.
CACHESTORE 및 USERSTORE
CACHESTORE 및 USERSTORE는 메모리 클럭이지만 실제 캐시로 작동합니다. 일반적으로 캐시 제거 정책이 해당 할당을 해제할 때까지 캐시는 할당을 유지합니다. 다시 만들지 않도록 하기 위해 캐시된 할당은 가능한 한 오랫동안 캐시에 유지되며, 유용하기에는 너무 오래되었거나 새 정보에 메모리 공간이 필요한 경우 캐시에서 일반적으로 제거됩니다(자세한 내용은 클록 핸드 스윕 참조). 이는 캐시에 대한 두 가지 주요 컨트롤 중 하나입니다. 수명 제어 및 표시 유형 제어입니다.
캐시 저장소와 사용자 저장소는 할당 수명을 제어하는 방식이 다릅니다. 캐시 저장소의 경우 항목의 수명은 SQLOS의 캐싱 프레임워크에 의해 완전히 제어됩니다. 사용자 저장소를 사용하면 항목 수명이 저장소에서 부분적으로만 제어됩니다. 각 사용자 저장소의 구현은 메모리 할당의 특성에 따라 달라질 수 있으므로 사용자 저장소는 해당 항목의 수명 제어에 참여합니다.
표시 유형 컨트롤은 항목의 표시 유형을 관리합니다. 캐시에 항목이 있을 수 있지만 표시되지 않을 수 있습니다. 예를 들어 캐시 항목이 단일 용도로만 표시된 경우 항목이 사용된 후에는 표시되지 않습니다. 또한 캐시 항목은 더티로 표시될 수 있습니다. 캐시에 계속 사용되지만 조회에는 표시되지 않습니다. 두 저장소의 경우 항목 표시 유형은 캐싱 프레임워크에 의해 제어됩니다.
자세한 내용은 SQLOS 캐싱을 참조 하세요.
OBJECTSTORE
개체 저장소는 간단한 풀입니다. 동종 데이터를 캐시하는 데 사용됩니다. 풀의 모든 항목은 동일한 것으로 간주됩니다. 개체 저장소는 최대 한도를 구현하여 다른 캐시를 기준으로 크기를 제어합니다.
자세한 내용은 SQLOS 캐싱을 참조 하세요.
유형
다음 표에서는 메모리 클럭 유형을 나열합니다.
Type | 설명 |
---|---|
CACHESTORE_BROKERDSH | 이 캐시 저장소는 Service Broker 대화 상자 보안 헤더 캐시에서 할당을 저장하는 데 사용됩니다. |
CACHESTORE_BROKERKEK | 이 캐시 저장소는 Service Broker 키 Exchange 키 캐시에서 할당을 저장하는 데 사용됩니다. |
CACHESTORE_BROKERREADONLY | 이 캐시 저장소는 Service Broker 읽기 전용 캐시에서 할당을 저장하는 데 사용됩니다. |
CACHESTORE_BROKERRSB | 이 캐시 저장소는 Service Broker 원격 서비스 바인딩 캐시에 의한 할당을 저장하는 데 사용됩니다. |
CACHESTORE_BROKERTBLACS | 이 캐시 저장소는 보안 액세스 구조에 대한 Service Broker의 할당을 저장하는 데 사용됩니다. |
CACHESTORE_BROKERTO | 이 캐시 저장소는 Service Broker Transmission 개체 캐시에서 할당을 저장하는 데 사용됩니다. |
CACHESTORE_BROKERUSERCERTLOOKUP | 이 캐시 저장소는 Service Broker 사용자 인증서 조회 캐시에서 할당을 저장하는 데 사용됩니다. |
CACHESTORE_COLUMNSTOREOBJECTPOOL | 이 캐시 저장소는 세그먼트 및 사전에 대한 Columnstore 인덱스에 의한 할당에 사용됩니다. |
CACHESTORE_CONVPRI | 이 캐시 저장소는 대화 우선 순위를 추적하기 위해 Service Broker에서 할당을 저장하는 데 사용됩니다. |
CACHESTORE_EVENTS | 이 캐시 저장소는 Service Broker 이벤트 알림에 의해 할당을 저장하는 데 사용됩니다. |
CACHESTORE_FULLTEXTSTOPLIST | 이 메모리 클럭은 중지 목록 기능을 위해 전체 텍스트 엔진의 할당에 사용됩니다. |
CACHESTORE_NOTIF | 이 캐시 저장소는 쿼리 알림 기능의 할당에 사용됩니다. |
CACHESTORE_OBJCP | 이 캐시 저장소는 CP(컴파일된 계획)를 사용하여 개체를 캐싱하는 데 사용됩니다. 저장 프로시저, 함수, 트리거. 이를 설명하기 위해 저장 프로시저에 대한 쿼리 계획을 만든 후에는 해당 계획이 이 캐시에 저장됩니다. |
CACHESTORE_PHDR | 이 캐시 저장소는 쿼리를 컴파일하는 동안 뷰, 제약 조건 및 기본 대수 트리를 구문 분석하는 동안 임시 메모리 캐싱에 사용됩니다. 쿼리가 구문 분석되면 메모리를 해제해야 합니다. 한 일괄 처리의 많은 문, 즉 하나의 일괄 처리로 수천 개의 삽입 또는 업데이트, 동적으로 생성된 큰 쿼리를 포함하는 T-SQL 일괄 처리, IN 절의 많은 수의 값 등이 있습니다. |
CACHESTORE_QDSRUNTIMESTATS | 이 캐시 저장소는 쿼리 저장소 런타임 통계를 캐시하는 데 사용됩니다. |
CACHESTORE_SEARCHPROPERTYLIST | 이 캐시 저장소는 속성 목록 캐시에 대한 전체 텍스트 엔진의 할당에 사용됩니다. |
CACHESTORE_SEHOBTCOLUMNATTRIBUTE | 이 캐시 저장소는 스토리지 엔진에서 힙 또는 B-트리(HoBT) 열 메타데이터 구조를 캐싱하는 데 사용됩니다. |
CACHESTORE_SQLCP | 이 캐시 저장소는 계획 캐시에서 임시 쿼리, 준비된 문 및 서버 쪽 커서를 캐싱하는 데 사용됩니다. 임시 쿼리는 일반적으로 명시적 매개 변수화 없이 서버에 제출된 언어 이벤트 T-SQL 문입니다. 준비된 문은 또한 이 캐시 저장소를 사용합니다. SQLPrepare()/ SQLExecute(ODBC) 또는 SqlCommand.Prepare/SqlCommand.ExecuteNonQuery(ADO.NET)와 같은 API 호출을 사용하여 애플리케이션에서 제출하며 sp_prepare sp_execute 또는 sp_prepexec/ 시스템 프로시저 실행으로 서버에 표시됩니다. 또한 서버 쪽 커서는 이 캐시 저장소(sp_cursoropen, sp_cursorfetch, sp_cursorclose)에서 사용합니다. |
CACHESTORE_STACKFRAMES | 이 캐시 저장소는 스택 프레임과 관련된 내부 SQL OS 구조를 할당하는 데 사용됩니다. |
CACHESTORE_SYSTEMROWSET | 이 캐시 저장소는 트랜잭션 로깅 및 복구와 관련된 내부 구조를 할당하는 데 사용됩니다. |
CACHESTORE_TEMPTABLES | 이 캐시 저장소는 계획 캐시의 일부인 임시 테이블 및 테이블 변수 캐싱과 관련된 할당에 사용됩니다. |
CACHESTORE_VIEWDEFINITIONS | 이 캐시 저장소는 쿼리 최적화의 일부로 뷰 정의를 캐싱하는 데 사용됩니다. |
CACHESTORE_XML_SELECTIVE_DG | 이 캐시 저장소는 XML 처리를 위해 XML 구조를 캐시하는 데 사용됩니다. |
CACHESTORE_XMLDBATTRIBUTE | 이 캐시 저장소는 XQuery와 같은 XML 작업에 대한 XML 특성 구조를 캐시하는 데 사용됩니다. |
CACHESTORE_XMLDBELEMENT | 이 캐시 저장소는 XQuery와 같은 XML 작업에 대한 XML 요소 구조를 캐시하는 데 사용됩니다. |
CACHESTORE_XMLDBTYPE | 이 캐시 저장소는 XQuery와 같은 XML 작업에 대한 XML 구조를 캐시하는 데 사용됩니다. |
CACHESTORE_XPROC | 이 캐시 저장소는 계획 캐시의 Xprocs(확장 저장 프로시저)에 대한 구조를 캐싱하는 데 사용됩니다. |
MEMORYCLERK_BACKUP | 이 메모리 클럭은 백업 기능에서 다양한 할당에 사용됩니다. |
MEMORYCLERK_BHF | 이 메모리 클럭은 쿼리 실행 중 BLOB(Binary Large Objects) 관리에 대한 할당에 사용됩니다(Blob Handle 지원). |
MEMORYCLERK_BITMAP | 이 메모리 클럭은 비트맵 필터링을 위해 SQL OS 기능의 할당에 사용됩니다. |
MEMORYCLERK_CSILOBCOMPRESSION | 이 메모리 클럭은 Columnstore 인덱스 BLOB(Binary Large Objects) 압축으로 할당하는 데 사용됩니다. |
MEMORYCLERK_DRTLHEAP | 이 메모리 클럭은 SQL OS 기능의 할당에 사용됩니다. 적용 대상: SQL Server 2019(15.x) 이상 |
MEMORYCLERK_EXPOOL | 이 메모리 클럭은 SQL OS 기능의 할당에 사용됩니다. 적용 대상: SQL Server 2019(15.x) 이상 |
MEMORYCLERK_EXTERNAL_EXTRACTORS | 이 메모리 클럭은 일괄 처리 모드 작업에 대한 쿼리 실행 엔진의 할당에 사용됩니다. 적용 대상: SQL Server 2019(15.x) 이상 |
MEMORYCLERK_FILETABLE | 이 메모리 클럭은 FileTables 기능에서 다양한 할당에 사용됩니다. |
MEMORYCLERK_FSAGENT | 이 메모리 클럭은 FILESTREAM 기능에서 다양한 할당에 사용됩니다. |
MEMORYCLERK_FSCHUNKER | 이 메모리 클럭은 파일 스트림 청크를 만들기 위한 FILESTREAM 기능의 다양한 할당에 사용됩니다. |
MEMORYCLERK_FULLTEXT | 이 메모리 클럭은 전체 텍스트 엔진 구조에서 할당하는 데 사용됩니다. |
MEMORYCLERK_FULLTEXT_SHMEM | 이 메모리 클럭은 전체 텍스트 디먼 프로세스와의 공유 메모리 연결과 관련된 전체 텍스트 엔진 구조에서 할당하는 데 사용됩니다. |
MEMORYCLERK_HADR | 이 메모리 클럭은 Always On 기능의 메모리 할당에 사용됩니다. |
MEMORYCLERK_HOST | 이 메모리 클럭은 SQL OS 기능의 할당에 사용됩니다. |
MEMORYCLERK_LANGSVC | 이 메모리 클럭은 SQL T-SQL 문 및 명령(파서, 대수 변환기 등)의 할당에 사용됩니다. |
MEMORYCLERK_LWC | 이 메모리 클럭은 전체 텍스트 의미 체계 검색 엔진의 할당에 사용됩니다. |
MEMORYCLERK_POLYBASE | 이 메모리 클럭은 SQL Server 내에서 PolyBase 기능에 대한 메모리 할당을 추적합니다. |
MEMORYCLERK_QSRANGEPREFETCH | 이 메모리 클럭은 쿼리 검색 범위 프리페치에 대한 쿼리 실행 중에 할당에 사용됩니다. |
MEMORYCLERK_QUERYDISKSTORE | 이 메모리 클럭은 SQL Server 내의 쿼리 저장소 메모리 할당에 사용됩니다. |
MEMORYCLERK_QUERYDISKSTORE_HASHMAP | 이 메모리 클럭은 SQL Server 내의 쿼리 저장소 메모리 할당에 사용됩니다. |
MEMORYCLERK_QUERYDISKSTORE_STATS | 이 메모리 클럭은 SQL Server 내의 쿼리 저장소 메모리 할당에 사용됩니다. |
MEMORYCLERK_QUERYPROFILE | 이 메모리 클럭은 서버 시작 중에 쿼리 프로파일링을 사용하도록 설정하는 데 사용됩니다. 적용 대상: SQL Server 2019(15.x) 이상 |
MEMORYCLERK_RTLHEAP | 이 메모리 클럭은 SQL OS 기능의 할당에 사용됩니다. 적용 대상: SQL Server 2019(15.x) 이상 |
MEMORYCLERK_SECURITYAPI | 이 메모리 클럭은 SQL OS 기능의 할당에 사용됩니다. 적용 대상: SQL Server 2019(15.x) 이상 |
MEMORYCLERK_SERIALIZATION | 내부적으로만 사용됩니다. |
MEMORYCLERK_SLOG | 이 메모리 클럭은 가속 데이터베이스 복구의 sLog(보조 메모리 내 로그 스트림)에서 할당에 사용됩니다. 적용 대상: SQL Server 2019(15.x) 이상 |
MEMORYCLERK_SNI | 이 메모리 클럭은 SNI(서버 네트워크 인터페이스) 구성 요소에 대한 메모리를 할당합니다. SNI는 SQL Server에 대한 연결 및 TDS 패킷을 관리합니다. |
MEMORYCLERK_SOSMEMMANAGER | 이 메모리 클럭은 SOS(SQLOS) 스레드 예약 및 메모리 및 I/O 관리에 대한 구조를 할당합니다. |
MEMORYCLERK_SOSNODE | 이 메모리 클럭은 SOS(SQLOS) 스레드 예약 및 메모리 및 I/O 관리에 대한 구조를 할당합니다. |
MEMORYCLERK_SOSOS | 이 메모리 클럭은 SOS(SQLOS) 스레드 예약 및 메모리 및 I/O 관리에 대한 구조를 할당합니다. |
MEMORYCLERK_SPATIAL | 이 메모리 클럭은 공간 데이터 구성 요소에서 메모리 할당에 사용됩니다. |
MEMORYCLERK_SQLBUFFERPOOL | 이 메모리 클럭은 일반적으로 SQL Server 내에서 가장 큰 메모리 소비자인 데이터 및 인덱스 페이지를 추적합니다. 버퍼 풀 또는 데이터 캐시는 데이터에 대한 빠른 액세스를 제공하기 위해 메모리에 로드된 데이터 및 인덱스 페이지를 유지합니다. 자세한 내용은 버퍼 관리를 참조 하세요. |
MEMORYCLERK_SQLCLR | 이 메모리 클럭은 SQLCLR의 할당에 사용됩니다. |
MEMORYCLERK_SQLCLRASSEMBLY | 이 메모리 클럭은 SQLCLR 어셈블리에 대한 할당에 사용됩니다. |
MEMORYCLERK_SQLCONNECTIONPOOL | 이 메모리 클럭은 클라이언트 애플리케이션에서 추적할 서버가 필요할 수 있는 정보를 서버에 캐시합니다. 한 가지 예는 sp_prepexecrpc 통해 준비 핸들을 만드는 애플리케이션입니다. 애플리케이션은 실행 후 해당 핸들의 준비(닫기)를 제대로 취소해야 합니다. |
MEMORYCLERK_SQLEXTENSIBILITY | 이 메모리 클럭은 SQL Server에서 외부 Python 또는 R 스크립트를 실행하기 위한 확장성 프레임워크 의 할당에 사용됩니다. 적용 대상: SQL Server 2019(15.x) 이상 |
MEMORYCLERK_SQLGENERAL | 이 메모리 클럭은 SQL 엔진 내의 여러 소비자가 사용할 수 있습니다. 복제 메모리, 내부 디버깅/진단, 일부 SQL Server 시작 기능, 일부 SQL 파서 기능, 시스템 인덱스 빌드, 전역 메모리 개체 초기화, 서버 내에 OLEDB 연결 만들기 및 연결된 서버 쿼리, 서버 쪽 프로파일러 추적, 실행 계획 데이터 만들기, 일부 보안 기능, 계산 열 컴파일, 병렬 처리 구조용 메모리, 일부 XML 기능에 대한 메모리를 예로 들 수 있습니다. |
MEMORYCLERK_SQLHTTP | 더 이상 사용되지 않음 |
MEMORYCLERK_SQLLOGPOOL | 이 메모리 클럭은 SQL Server 로그 풀에서 사용됩니다. 로그 풀은 트랜잭션 로그를 읽을 때 성능을 향상시키는 데 사용되는 캐시입니다. 특히 여러 로그 읽기 중에 로그 캐시 사용률을 향상시키고 디스크 I/O 로그 읽기를 줄이며 로그 검사 공유를 허용합니다. 로그 풀의 기본 소비자는 Always On(변경 캡처 및 보내기), 다시 실행 관리자, 데이터베이스 복구 - 분석/다시 실행/실행 취소, 트랜잭션 런타임 롤백, 복제/CDC, 백업/복원입니다. |
MEMORYCLERK_SQLOPTIMIZER | 이 메모리 클럭은 쿼리를 컴파일하는 여러 단계에서 메모리 할당에 사용됩니다. 일부 용도로는 쿼리 최적화, 인덱스 통계 관리자, 뷰 정의 컴파일, 히스토그램 생성 등이 있습니다. |
MEMORYCLERK_SQLQERESERVATIONS | 이 메모리 클럭은 쿼리 실행 중에 정렬 및 해시 작업을 수행하기 위해 쿼리에 할당된 메모리인 메모리 부여 할당에 사용됩니다. 쿼리 실행 예약(메모리 부여)에 대한 자세한 내용은 이 블로그를 참조 하세요. |
MEMORYCLERK_SQLQUERYCOMPILE | 이 메모리 클럭은 쿼리 컴파일 중에 메모리를 할당하기 위해 쿼리 최적화 프로그램에서 사용됩니다. |
MEMORYCLERK_SQLQUERYEXEC | 이 메모리 클럭은 일괄 처리 모드 처리, 병렬 쿼리 실행, 쿼리 실행 컨텍스트, 공간 인덱스 공간 분할, 정렬 및 해시 작업(정렬 테이블, 해시 테이블), 일부 DVM 처리, 업데이트 통계 실행 등의 영역에서 할당에 사용됩니다. |
MEMORYCLERK_SQLQUERYPLAN | 이 메모리 클럭은 힙 페이지 관리, DBCC CHECKTABLE 할당 및 sp_cursor* 저장 프로시저 할당의 할당에 사용됩니다. |
MEMORYCLERK_SQLSERVICEBROKER | 이 메모리 클럭은 SQL Server Service Broker 메모리 할당에서 사용됩니다. |
MEMORYCLERK_SQLSERVICEBROKERTRANSPORT | 이 메모리 클럭은 SQL Server Service Broker 전송 메모리 할당에 사용됩니다. |
MEMORYCLERK_SQLSLO_OPERATIONS | 이 메모리 클럭은 성능 통계를 수집하는 데 사용됩니다. 적용 대상: Azure SQL Database |
MEMORYCLERK_SQLSOAP | 더 이상 사용되지 않음 |
MEMORYCLERK_SQLSOAPSESSIONSTORE | 더 이상 사용되지 않음 |
MEMORYCLERK_SQLSTORENG | 이 메모리 클럭은 여러 스토리지 엔진 구성 요소의 할당에 사용됩니다. 구성 요소의 예로는 데이터베이스 파일, 데이터베이스 스냅샷 복제본 파일 관리자, 교착 상태 모니터, DBTABLE 구조, 로그 관리자 구조, 일부 tempdb 버전 관리 구조, 일부 서버 시작 기능, 병렬 쿼리의 자식 스레드에 대한 실행 컨텍스트 등이 있습니다. |
MEMORYCLERK_SQLTRACE | 이 메모리 클럭은 서버 쪽 SQL 추적 메모리 할당에 사용됩니다. |
MEMORYCLERK_SQLUTILITIES | 이 메모리 클럭은 SQL Server 내의 여러 할당자에서 사용할 수 있습니다. 예를 들어 백업 및 복원, 로그 전달, 데이터베이스 미러링, DBCC 명령, 서버 쪽의 BCP 코드, 일부 쿼리 병렬 처리 작업, Log Scan 버퍼 등이 있습니다. |
MEMORYCLERK_SQLXML | 이 메모리 클럭은 XML 작업을 수행할 때 메모리 할당에 사용됩니다. |
MEMORYCLERK_SQLXP | 이 메모리 클럭은 SQL Server 확장 저장 프로시저를 호출할 때 메모리 할당에 사용됩니다. |
MEMORYCLERK_SVL | 이 메모리 클럭은 내부 SQL OS 구조의 할당에 사용됩니다. |
MEMORYCLERK_TEST | 내부적으로만 사용됩니다. |
MEMORYCLERK_UNITTEST | 내부적으로만 사용됩니다. |
MEMORYCLERK_WRITEPAGERECORDER | 이 메모리 클럭은 쓰기 페이지 레코더에서 할당에 사용됩니다. |
MEMORYCLERK_XE | 이 메모리 클럭은 확장 이벤트 메모리 할당에 사용됩니다. |
MEMORYCLERK_XE_BUFFER | 이 메모리 클럭은 확장 이벤트 메모리 할당에 사용됩니다. |
MEMORYCLERK_XLOG_SERVER | 이 메모리 클럭은 SQL Azure Database의 로그 파일 관리에 사용되는 Xlog의 할당에 사용됩니다. 적용 대상: Azure SQL Database |
MEMORYCLERK_XTP | 이 메모리 클럭은 메모리 내 OLTP 메모리 할당에 사용됩니다. |
OBJECTSTORE_LBSS | 이 개체 저장소는 식에 대한 변수, 매개 변수 및 중간 결과인 임시 LOB를 할당하는 데 사용됩니다. 이 저장소를 사용하는 예제는 TVP(테이블 반환 매개 변수)입니다. 이 공간의 수정 사항에 대한 자세한 내용은 4051359 KB 문서 4468102 및 KB 문서를 참조하세요. |
OBJECTSTORE_LOCK_MANAGER | 이 메모리 클럭은 SQL Server의 Lock Manager에서 수행한 할당을 추적합니다. |
OBJECTSTORE_SECAUDIT_EVENT_BUFFER | 이 개체 저장소는 SQL Server 감사 메모리 할당에 사용됩니다. |
OBJECTSTORE_SERVICE_BROKER | 이 개체 저장소는 Service Broker에서 사용됩니다. |
OBJECTSTORE_SNI_PACKET | 이 개체 저장소는 연결을 관리하는 SNI(서버 네트워크 인터페이스) 구성 요소에서 사용됩니다. |
OBJECTSTORE_XACT_CACHE | 이 개체 저장소는 트랜잭션 정보를 캐시하는 데 사용됩니다. |
USERSTORE_DBMETADATA | 이 개체 저장소는 메타데이터 구조에 사용됩니다. |
USERSTORE_OBJPERM | 이 저장소는 개체 보안/사용 권한을 추적하는 구조에 사용됩니다. |
USERSTORE_QDSSTMT | 이 캐시 저장소는 쿼리 저장소 문을 캐시하는 데 사용됩니다. |
USERSTORE_SCHEMAMGR | 스키마 관리자 캐시는 메모리의 데이터베이스 개체(예: 테이블)에 대한 다양한 유형의 메타데이터 정보를 저장합니다. 이 저장소의 일반적인 사용자는 테이블, 임시 프로시저, 테이블 변수, 테이블 반환 매개 변수, 작업 테이블, 작업 파일, 버전 저장소와 같은 개체가 있는 tempdb 데이터베이스일 수 있습니다. |
USERSTORE_SXC | 이 사용자 저장소는 모든 RPC 매개 변수를 저장하는 할당에 사용됩니다. |
USERSTORE_TOKENPERM | TokenAndPermUserStore는 보안 컨텍스트, 로그인, 사용자, 권한 및 감사에 대한 보안 항목을 추적하는 단일 SOS 사용자 저장소입니다. 이러한 개체를 저장하기 위해 여러 해시 테이블이 할당됩니다. |
참고 항목
설명서는 인덱스를 지칭할 때 B-트리라는 용어를 사용합니다. rowstore 인덱스에서 데이터베이스 엔진은 B+ 트리를 구현합니다. 이는 columnstore 인덱스나 메모리 최적화 테이블 인덱스에는 적용되지 않습니다. 자세한 내용은 SQL Server 및 Azure SQL 인덱스 아키텍처 및 디자인 가이드를 참조하세요.
참고 항목
SQL Server 운영 체제 관련 동적 관리 뷰(Transact-SQL)
sys.dm_os_sys_info(Transact-SQL)
sys.dm_exec_query_memory_grants(Transact-SQL)
sys.dm_exec_requests(Transact-SQL)
sys.dm_exec_query_plan(Transact-SQL)
sys.dm_exec_sql_text(Transact-SQL)