Dela via


sys.dm_xtp_system_memory_consumers (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Rapporterar minneskonsumenter på systemnivå för In-Memory OLTP. Minnet för dessa konsumenter kommer antingen från standardpoolen (när allokeringen är i kontexten för en användartråd) eller från den interna poolen (om allokeringen finns i kontexten för en systemtråd).

SELECT *
FROM sys.dm_xtp_system_memory_consumers;

Mer information finns iIn-Memory OLTP (In-Memory Optimization).

Kolumnnamn Typ Description
memory_consumer_id bigint Internt ID för minneskonsument.
memory_consumer_type int Ett heltal som representerar minneskonsumentens typ med något av följande värden:

0 – Bör inte visas. Aggregerar minnesanvändningen för två eller flera konsumenter.

1 – LOOKASIDE: Spårar minnesförbrukning för en system-lookaside.

2 – VARHEAP: Spårar minnesförbrukning för en heap med variabel längd.

4 – I/O-sidpool: Spårar minnesförbrukning för en systemsidepool som används för I/O-åtgärder.
memory_consumer_type_desc nvarchar(16) Beskrivningen av typen av minneskonsument:

0 – Bör inte visas

1 - LOOKASIDE

2 – VARHEAP

4 – PGPOOL
memory_consumer_desc nvarchar(64) Beskrivning av minneskonsumentinstansen:

VARHEAP:
Systemhög. Generell användning. Används för närvarande endast för att allokera skräpinsamlingsarbetsobjekt.
ELLER
Lookaside heap. Används av lookasides när antalet objekt som finns i lookaside-listan når ett förutbestämt tak (vanligtvis cirka 5 000 objekt).

PGPOOL: För I/O-systempooler finns det tre olika storlekar: System 4K-sidpool, System 64-K-sidpool och System 256-K-sidpool.
lookaside_id bigint ID för den trådlokala minnesprovidern lookaside.
pagepool_id bigint ID:t för den trådlokala, sidpoolens minnesprovider.
allocated_bytes bigint Antal byte som reserverats för den här konsumenten.
used_bytes bigint Byte som används av den här konsumenten. Gäller endast för minneskonsumenter med varheap.

Från och med SQL Server 2022 (16.x) gäller för minneskonsumenter med varheap och lookaside.
allocation_count int Antal allokeringar.

Från och med SQL Server 2022 (16.x), antalet allokeringar från system heap för lookaside minneskonsumenter.
partition_count int Antalet superblockspartitioner för den här minneskonsumenten. Mer information finns i Minnesfragmentering.
sizeclass_count int Antalet superblocksstorleksklasser för den här minneskonsumenten. Minnesfragmentering.
min_sizeclass int Endast intern användning.
max_sizeclass int Endast intern användning.
memory_consumer_address varbinary Konsumentens interna adress.

Permissions

Kräver tillståndsbehörigheter för VIEW SERVER på servern.

Behörigheter för SQL Server 2022 och senare

Kräver BEHÖRIGHET FÖR VISNINGSSERVERNS PRESTANDATILLSTÅND på servern.

Anmärkningar

I SQL Server 2022 (16.x) har denna DMV ytterligare kolumner som är specifika för minnesoptimerade förbättringar av TempDB-metadataminnet.

Examples

I det här exemplet matas systemminneskonsumenterna ut för SQL Server-instansen:

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;

Utdata visar alla minneskonsumenter på systemnivå. Det finns till exempel konsumenter för transaktionssökning åt sidan.

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

Så här ser du det totala minne som förbrukas av systemallokerare:

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;

Här är resultatuppsättningen.

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