다음을 통해 공유


sys.dm_xtp_system_memory_consumers(Transact-SQL)

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance

메모리 내 OLTP에 대한 시스템 수준 메모리 소비자를 보고합니다. 이러한 소비자에 대한 메모리는 기본 풀(할당이 사용자 스레드의 컨텍스트에 있는 경우)에서 제공되거나 내부 풀(할당이 시스템 스레드의 컨텍스트에 있는 경우)에서 제공됩니다.

SELECT *
FROM sys.dm_xtp_system_memory_consumers;

자세한 내용은 메모리 내 OLTP(메모리 내 최적화)를 참조하세요.

열 이름 Type 설명
memory_consumer_id bigint 메모리 소비자의 내부 ID입니다.
memory_consumer_type int 다음 값 중 하나를 사용하여 메모리 소비자의 형식을 나타내는 정수입니다.

0 - 표시하면 안 됩니다. 둘 이상의 소비자의 메모리 사용량을 집계합니다.

1 - LOOKASIDE: 시스템 할당 준비에 대한 메모리 소비량을 추적합니다.

2 - VARHEAP: 가변 길이 힙에 대한 메모리 소비량을 추적합니다.

4 - IO 페이지 풀: IO 작업에 사용되는 시스템 페이지 풀에 대한 메모리 소비량을 추적합니다.
memory_consumer_type_desc nvarchar(16) 메모리 소비자 유형에 대한 설명입니다.

0 - 표시해서는 안 됩니다.

1 – LOOKASIDE

2 - VARHEAP

4 - PGPOOL
memory_consumer_desc nvarchar(64) 메모리 소비자 인스턴스에 대한 설명입니다.

VARHEAP:
시스템 힙입니다. 일반 용도입니다. 현재는 가비지 수집 작업 항목을 할당하는 데만 사용됩니다.
-또는-
Lookaside 힙. 할당 준비 목록에 포함된 항목 수가 미리 결정된 캡(일반적으로 약 5,000개 항목)에 도달할 경우 할당 준비에 사용됩니다.

PGPOOL: IO 시스템 풀의 경우 시스템 4K 페이지 풀, 시스템 64K 페이지 풀 및 시스템 256-K 페이지 풀의 세 가지 크기가 있습니다.
lookaside_id bigint 스레드 로컬 lookaside 메모리 공급자의 ID입니다.
pagepool_id bigint 스레드 로컬 페이지 풀 메모리 공급자의 ID입니다.
allocated_bytes bigint 이 소비자에 대해 예약된 바이트 수입니다.
used_bytes bigint 이 소비자가 사용하는 바이트입니다. varheap 메모리 소비자에만 적용됩니다.

SQL Server 2022(16.x)부터 varheap 및 lookaside 메모리 소비자에게 적용됩니다.
allocation_count int 할당 수입니다.

SQL Server 2022(16.x)부터 lookaside 메모리 소비자를 위한 시스템 힙의 할당 수입니다.
partition_count int 내부용으로만 사용됩니다.
sizeclass_count int 내부용으로만 사용됩니다.
min_sizeclass int 내부용으로만 사용됩니다.
max_sizeclass int 내부용으로만 사용됩니다.
memory_consumer_address varbinary 소비자의 내부 주소입니다.

사용 권한

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

SQL Server 2022 이상에 대한 사용 권한

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

설명

SQL Server 2022(16.x)에서 이 DMV에는 메모리 최적화 TempDB 메타데이터 메모리 개선과 관련된 추가 열이 있습니다.

예제

이 예제에서는 SQL Server 인스턴스에 대한 시스템 메모리 소비자를 출력합니다.

SELECT memory_consumer_type_desc,
       memory_consumer_desc,
       allocated_bytes / 1024 as allocated_bytes_kb,
       used_bytes / 1024 as used_bytes_kb,
       allocation_count
FROM sys.dm_xtp_system_memory_consumers;

출력은 시스템 수준에서 모든 메모리 소비자를 표시합니다. 예를 들어 트랜잭션에 대한 소비자는 제쳐두고 있습니다.

memory_consumer_type_desc                memory_consumer_desc                           allocated_bytes_kb   used_bytes_kb        allocation_count
-------------------------------          ---------------------                          -------------------  --------------       ----------------
VARHEAP                                  Lookaside heap                                 0                    0                    0
VARHEAP                                  System heap                                    768                  0                    2
LOOKASIDE                                GC transaction map entry                       64                   64                   910
LOOKASIDE                                Redo transaction map entry                     128                  128                  1260
LOOKASIDE                                Recovery table cache entry                     448                  448                  8192
LOOKASIDE                                Transaction recent rows                        3264                 3264                 4444
LOOKASIDE                                Range cursor                                   0                    0                    0
LOOKASIDE                                Hash cursor                                    3200                 3200                 11070
LOOKASIDE                                Transaction save-point set entry               0                    0                    0
LOOKASIDE                                Transaction partially-inserted rows set        704                  704                  1287
LOOKASIDE                                Transaction constraint set                     576                  576                  1940
LOOKASIDE                                Transaction save-point set                     0                    0                    0
LOOKASIDE                                Transaction write set                          704                  704                  672
LOOKASIDE                                Transaction scan set                           320                  320                  156
LOOKASIDE                                Transaction read set                           704                  704                  343
LOOKASIDE                                Transaction                                    4288                 4288                 1459
PGPOOL                                   System 256K page pool                          5120                 5120                 20
PGPOOL                                   System 64K page pool                           0                    0                    0
PGPOOL                                   System 4K page pool                            24                   24                   6

시스템 할당자가 사용하는 총 메모리를 보려면 다음을 수행합니다.

SELECT SUM(allocated_bytes) / (1024 * 1024) AS total_allocated_MB,
       SUM(used_bytes) / (1024 * 1024) AS total_used_MB
FROM sys.dm_xtp_system_memory_consumers;

결과 집합은 다음과 같습니다.

total_allocated_MB   total_used_MB
-------------------- --------------------
2                    2