sys.dm_db_xtp_memory_consumers (Transact-SQL)

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

Rapporterar minneskonsumenterna på databasnivå i den In-Memory OLTP-databasmotorn. Vyn returnerar en rad för varje minneskonsument som databasmotorn använder. Använd detta DMV för att se hur minnet är fördelat över olika interna objekt.

Mer information finns iIn-Memory OLTP-översikt och användningsscenarier.

Anmärkning

Resultatet från denna systemdynamiska hanteringsvy kan skilja sig åt beroende på vilken version av SQL Server som är installerad.

Kolumnnamn Datatyp Description
memory_consumer_id bigint ID (internt) för minneskonsumenten.
memory_consumer_type int Typen av minneskonsument:

0 = Sammanlagd. (Aggregerar minnesanvändningen för två eller fler konsumenter. Det borde inte visas.)

2 = ( VARHEAP Spårar minnesförbrukning för en heap med variabel längd.)

3 = HASH (Spårar minnesförbrukning för ett index.)

4 = PGPOOL (DB-sidpool: Spårar minnesförbrukning för en databassidpool som används för körningsoperationer. Till exempel tabellvariabler och vissa serialiserbara skanningar. Det finns bara en minneskonsument av denna typ per databas.)
memory_consumer_type_desc nvarchar(64) Typ av minneskonsument: VARHEAP, HASH, eller PGPOOL.

0 - (Bör inte visas)
2 - VARHEAP
3 - HASH
4 - PGPOOL
memory_consumer_desc nvarchar(64) Beskrivning av minneskonsumentinstansen. För mer information, läs tabellen nedan.
object_id bigint Objekt-ID som det allokerade minnet tillskrivs. Ett negativt värde för systemobjekt.
xtp_object_id bigint Det In-Memory OLTP-objekt-ID som motsvarar den minnesoptimerade tabellen.
index_id int Konsumentens index-ID (om det finns något). NULL för bastabeller.
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 VARHEAP.
allocation_count int Antal allokeringar.
partition_count int Endast intern användning.
sizeclass_count int Endast intern användning.
min_sizeclass int Endast intern användning.
max_sizeclass int Endast intern användning.
memory_consumer_address varbinary Konsumentens interna adress. Endast för internt bruk.

Följande tabell beskriver minneskonsumenterna som anges i kolumnen memory_consumer_type :

Minneskonsument Description Typ
256K page pool Minnespool som används under checkpoint-aktivitet. PGPOOL
4K page pool Minnespool som används under checkpoint-aktivitet. PGPOOL
Checkpoint table Endast intern användning. VARHEAP
Ckpt file table Endast intern användning. VARHEAP
Ckpt file watermark table Endast intern användning. VARHEAP
Database internal heap Används för att allokera databasdata som ingår i minnesdumpar och inte inkluderar användardata. VARHEAP
Database user heap Används för att allokera användardata till en databas (rader). VARHEAP
Encryption table Endast intern användning. VARHEAP
Hash index Spårar minnesförbrukning för ett index. Indikerar object_id tabellen och the av index_id själva hashindexet. HASH
Large Rows File table Endast intern användning. VARHEAP
LOB Page Allocator Heapminne som används av stora rader. VARHEAP
Logical range index partition table Endast intern användning. VARHEAP
Logical root fragment table Endast intern användning. VARHEAP
Logical Root table Endast intern användning. VARHEAP
Logical Sequence Object table Endast intern användning. VARHEAP
Physical range index partition table Endast intern användning. VARHEAP
Physical root fragment table Endast intern användning. VARHEAP
Physical Root table Endast intern användning. VARHEAP
Physical Sequence object table Endast intern användning. VARHEAP
Range index heap Privat heap används av räckviddsindex för att allokera Bw-trädssidor. VARHEAP
Storage internal heap Endast intern användning. VARHEAP
Storage user heap Endast intern användning. VARHEAP
Table heap Heapminne som används av In-Memory tabeller. VARHEAP
Tail cache 256K page pool Endast intern användning. PGPOOL
Tx Segment table Endast intern användning. VARHEAP

Anmärkningar

När en minnesoptimerad tabell har ett kolumnlagringsindex använder systemet vissa interna tabeller, som förbrukar lite minne, för att spåra data för kolumnlagringsindexet. För detaljer om dessa interna tabeller och exempelfrågor som visar deras minnesanvändning, se sys.memory_optimized_tables_internal_attributes (Transact-SQL).

Permissions

Alla rader returneras om du har behörighet VIEW DATABASE STATE på den aktuella databasen. Annars returneras en tom raduppsättning.

Om du inte har behörighet VISA DATABAS returneras alla kolumner för rader i tabeller där du har SELECT-behörighet.

På SQL Server 2019 (15.x) och tidigare versioner returneras systemtabeller endast för användare med behörighet VISA DATABASSTATUS.

För SQL Server 2022 (16.x) och senare versioner kräver du behörighet VIEW DATABASE PERFORMANCE STATE på databasen.

Examples

Frågeminneskonsumenter i den aktuella databasen

Kör följande fråga mot exempeldatabasen WideWorldImporters , som innehåller minnesoptimerade tabeller:

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;

Här är resultatet.

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

Det totala minne som tilldelats och används från denna DMV är detsamma som objektnivån i 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;

Här är resultatet.

total_allocated_MB total_used_MB
------------------ --------------------
92                 51