sys.dm_db_xtp_memory_consumers(Transact-SQL)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
메모리 내 OLTP 데이터베이스 엔진에서 데이터베이스 수준 메모리 소비자를 보고합니다. 뷰는 데이터베이스 엔진에서 사용하는 각 메모리 소비자에 대한 행을 반환합니다. 이 DMV를 사용하여 메모리가 여러 내부 개체에 분산되는 방식을 확인합니다.
자세한 내용은 메모리 내 OLTP 개요 및 사용 시나리오를 참조하세요.
참고 항목
이 시스템 동적 관리 뷰의 출력은 설치된 SQL Server 버전에 따라 다를 수 있습니다.
열 이름 | 데이터 형식 | 설명 |
---|---|---|
memory_consumer_id |
bigint | 메모리 소비자의 ID(내부)입니다. |
memory_consumer_type |
int | 메모리 소비자의 유형: 0 = 집계입니다. (둘 이상의 소비자의 메모리 사용량을 집계합니다. 표시해서는 안 됩니다.) 2 = VARHEAP (가변 길이 힙의 메모리 사용량을 추적합니다.)3 = HASH (인덱스 메모리 사용량을 추적합니다.)4 = PGPOOL (DB 페이지 풀: 런타임 작업에 사용되는 데이터베이스 페이지 풀의 메모리 사용량을 추적합니다. 예를 들어 테이블 변수 및 일부 직렬화 가능한 검사입니다. 이 유형의 메모리 소비자는 데이터베이스당 하나뿐입니다.) |
memory_consumer_type_desc |
nvarchar(64) | 메모리 소비자 유형: VARHEAP , HASH 또는 PGPOOL .0 - (표시 안 됨) 2 - VARHEAP 3- HASH 4- PGPOOL |
memory_consumer_desc |
nvarchar(64) | 메모리 소비자 인스턴스에 대한 설명입니다. 자세한 내용은 다음 표를 검토하세요. |
object_id |
bigint | 할당된 메모리의 특성이 지정된 개체 ID입니다. 시스템 개체의 음수 값입니다. |
xtp_object_id |
bigint | 메모리 최적화 테이블에 해당하는 메모리 내 OLTP 개체 ID입니다. |
index_id |
int | 소비자의 인덱스 ID입니다(있는 경우). 기본 테이블의 경우 NULL입니다. |
allocated_bytes |
bigint | 이 소비자에 대해 예약된 바이트 수입니다. |
used_bytes |
bigint | 이 소비자가 사용하는 바이트입니다. 에만 VARHEAP 적용됩니다. |
allocation_count |
int | 할당 수입니다. |
partition_count |
int | 내부용으로만 사용됩니다. |
sizeclass_count |
int | 내부용으로만 사용됩니다. |
min_sizeclass |
int | 내부용으로만 사용됩니다. |
max_sizeclass |
int | 내부용으로만 사용됩니다. |
memory_consumer_address |
varbinary | 소비자의 내부 주소입니다. 내부 전용. |
다음 표에서는 열에 지정된 메모리 소비자에 대해 memory_consumer_type
설명합니다.
메모리 소비자 | 설명 | Type |
---|---|---|
256K page pool |
검사점 작업 중에 사용되는 메모리 풀입니다. | PGPOOL |
4K page pool |
검사점 작업 중에 사용되는 메모리 풀입니다. | PGPOOL |
Checkpoint table |
내부용으로만 사용됩니다. | VARHEAP |
Ckpt file table |
내부용으로만 사용됩니다. | VARHEAP |
Ckpt file watermark table |
내부용으로만 사용됩니다. | VARHEAP |
Database internal heap |
메모리 덤프에 포함되고 사용자 데이터를 포함하지 않는 데이터베이스 데이터를 할당하는 데 사용됩니다. | VARHEAP |
Database user heap |
데이터베이스(행)에 대한 사용자 데이터를 할당하는 데 사용됩니다. | VARHEAP |
Encryption table |
내부용으로만 사용됩니다. | VARHEAP |
Hash index |
인덱스 메모리 사용량을 추적합니다. 테이블 object_id 과 index_id 해시 인덱스 자체를 나타냅니다. |
HASH |
Large Rows File table |
내부용으로만 사용됩니다. | VARHEAP |
LOB Page Allocator |
큰 행에서 사용하는 힙 메모리입니다. | VARHEAP |
Logical range index partition table |
내부용으로만 사용됩니다. | VARHEAP |
Logical root fragment table |
내부용으로만 사용됩니다. | VARHEAP |
Logical Root table |
내부용으로만 사용됩니다. | VARHEAP |
Logical Sequence Object table |
내부용으로만 사용됩니다. | VARHEAP |
Physical range index partition table |
내부용으로만 사용됩니다. | VARHEAP |
Physical root fragment table |
내부용으로만 사용됩니다. | VARHEAP |
Physical Root table |
내부용으로만 사용됩니다. | VARHEAP |
Physical Sequence object table |
내부용으로만 사용됩니다. | VARHEAP |
Range index heap |
범위 인덱스가 Bw-tree 페이지를 할당하는 데 사용하는 프라이빗 힙입니다. | VARHEAP |
Storage internal heap |
내부용으로만 사용됩니다. | VARHEAP |
Storage user heap |
내부용으로만 사용됩니다. | VARHEAP |
Table heap |
메모리 내 테이블에서 사용하는 힙 메모리입니다. | VARHEAP |
Tail cache 256K page pool |
내부용으로만 사용됩니다. | PGPOOL |
Tx Segment table |
내부용으로만 사용됩니다. | VARHEAP |
설명
메모리 최적화 테이블에 columnstore 인덱스가 있는 경우 시스템은 일부 메모리를 사용하는 일부 내부 테이블을 사용하여 columnstore 인덱스 데이터를 추적합니다. 이러한 내부 테이블 및 메모리 사용량을 보여 주는 샘플 쿼리에 대한 자세한 내용은 sys.memory_optimized_tables_internal_attributes(Transact-SQL)를 참조하세요.
사용 권한
현재 데이터베이스에 대한 VIEW DATABASE STATE 권한이 있는 경우 모든 행이 반환됩니다. 그렇지 않으면 빈 행 집합이 반환됩니다.
VIEW DATABASE 권한이 없는 경우 SELECT 권한이 있는 테이블의 행에 대해 모든 열이 반환됩니다.
SQL Server 2019(15.x) 및 이전 버전에서는 VIEW DATABASE STATE 권한이 있는 사용자에 대해서만 시스템 테이블이 반환됩니다.
SQL Server 2022(16.x) 이상 버전의 경우 데이터베이스에 대한 VIEW DATABASE PERFORMANCE STATE 권한이 필요합니다.
예제
현재 데이터베이스의 메모리 소비자 쿼리
메모리 최적화 테이블을 포함하는 샘플 WideWorldImporters
데이터베이스에 대해 다음 쿼리를 실행합니다.
SELECT CONVERT(CHAR(10), OBJECT_NAME(object_id)) AS Name,
memory_consumer_type_desc,
memory_consumer_desc,
object_id,
index_id,
allocated_bytes,
used_bytes
FROM sys.dm_db_xtp_memory_consumers;
결과 집합은 다음과 같습니다.
Name memory_consumer_type_desc memory_consumer_desc object_id index_id allocated_bytes used_bytes
---------- ------------------------- -------------------------------------- ----------- ----------- ----------------- ------------
NULL VARHEAP Range index heap -15 1 131072 176
NULL VARHEAP Physical range index partition table -15 NULL 0 0
NULL VARHEAP Range index heap -14 2 131072 192
NULL VARHEAP Range index heap -14 1 131072 208
NULL VARHEAP Large Rows File table -14 NULL 0 0
NULL HASH Hash index -13 1 2048 2048
NULL VARHEAP Encryption table -13 NULL 0 0
NULL HASH Hash index -10 2 32768 32768
NULL HASH Hash index -10 1 32768 32768
NULL VARHEAP Tx Segment table -10 NULL 65536 544
NULL HASH Hash index -11 1 32768 32768
NULL VARHEAP Checkpoint table -11 NULL 131072 320
NULL HASH Hash index -12 1 8192 8192
NULL VARHEAP Ckpt file table -12 NULL 131072 3120
NULL HASH Hash index -9 1 2048 2048
NULL VARHEAP Ckpt file watermark table -9 NULL 131072 1280
NULL VARHEAP Range index heap -7 1 262144 976
NULL VARHEAP Physical Sequence Object table -7 NULL 65536 864
NULL HASH Hash index -3 1 2048 2048
NULL VARHEAP Physical root fragment table -3 NULL 0 0
NULL HASH Hash index 0 2 8192 8192
NULL HASH Hash index 0 1 32768 32768
NULL VARHEAP Physical Root table NULL NULL 327680 12160
NULL PGPOOL Tail cache 256K page pool 0 NULL 262144 262144
NULL PGPOOL 256K page pool 0 NULL 35389440 18874368
NULL PGPOOL 64K page pool 0 NULL 131072 65536
NULL PGPOOL 4K page pool 0 NULL 49152 40960
NULL VARHEAP Storage internal heap NULL NULL 786432 4816
NULL VARHEAP Storage user heap NULL NULL 262144 22496
ColdRoomTe VARHEAP Range index heap 1179151246 3 196608 800
ColdRoomTe VARHEAP Range index heap 1179151246 2 196608 800
memory_opt VARHEAP Range index heap 1211151360 2 131072 208
VehicleTem VARHEAP Range index heap 1243151474 2 11796480 1181824
ColdRoomTe VARHEAP Table heap 1179151246 NULL 65536 384
memory_opt VARHEAP Table heap 1211151360 NULL 0 0
VehicleTem VARHEAP Table heap 1243151474 NULL 33423360 32802112
VehicleTem VARHEAP Range index heap 1243151474 2 131072 160
VehicleTem VARHEAP LOB Page Allocator 1243151474 NULL 0 0
VehicleTem VARHEAP Table heap 1243151474 NULL 0 0
NULL VARHEAP Range index heap -15 1 327680 176
NULL VARHEAP Logical range index partition table -15 NULL 0 0
NULL HASH Hash index -7 1 32768 32768
NULL VARHEAP Logical Sequence Object table -7 NULL 65536 600
NULL HASH Hash index -3 1 2048 2048
NULL VARHEAP Logical root fragment table -3 NULL 0 0
NULL HASH Hash index 0 1 32768 32768
NULL VARHEAP Logical Root table NULL NULL 327680 11120
NULL PGPOOL Tail cache 256K page pool 0 NULL 262144 0
NULL PGPOOL 256K page pool 0 NULL 10485760 0
NULL PGPOOL 64K page pool 0 NULL 131072 0
NULL PGPOOL 4K page pool 0 NULL 32768 0
NULL VARHEAP Database internal heap NULL NULL 1048576 8016
NULL VARHEAP Database user heap NULL NULL 65536 1024
이 DMV에서 할당되고 사용되는 총 메모리는 sys.dm_db_xtp_table_memory_stats 개체 수준과 동일합니다.
SELECT SUM(allocated_bytes) / (1024 * 1024) AS total_allocated_MB,
SUM(used_bytes) / (1024 * 1024) AS total_used_MB
FROM sys.dm_db_xtp_memory_consumers;
결과 집합은 다음과 같습니다.
total_allocated_MB total_used_MB
------------------ --------------------
92 51