Sdílet prostřednictvím


sys.dm_db_xtp_memory_consumers (Transact-SQL)

platí pro: SQL Server Azure SQL DatabaseAzure SQL Managed Instance

Hlásí sběratele paměti na úrovni databáze In-Memory OLTP. Pohled vrací řádek pro každého uživatele paměti, kterého databázový engine používá. Použijte toto DMV, abyste viděli, jak je paměť rozložena mezi různými interními objekty.

Další informace najdete v tématu In-Memory přehled a scénáře použití OLTP.

Poznámka:

Výstup tohoto pohledu na dynamickou správu systému se může lišit v závislosti na verzi SQL Serveru, která je nainstalována.

Název sloupce Datový typ Description
memory_consumer_id bigint ID (interní) spotřebitele paměti.
memory_consumer_type int Typ uživatele paměti:

0 = Agregace. (Agreguje využití paměti dvou nebo více spotřebitelů. Nemělo by to být zobrazeno.)

2 = VARHEAP (Sleduje spotřebu paměti u haldy s proměnnou délkou.)

3 = HASH (Sleduje spotřebu paměti pro index.)

4 = PGPOOL (DB page pool: Sleduje spotřebu paměti pro databázový stránkový pool používaný pro runtime operace. Například tabulkové proměnné a některé serializovatelné skeny. V každé databázi je pouze jeden uživatel paměti tohoto typu.)
memory_consumer_type_desc nvarchar(64) Typ spotřebitele paměti: VARHEAP, HASH, nebo PGPOOL.

0 - (Nemělo by se zobrazovat)
2 - VARHEAP
3 - HASH
4 - PGPOOL
memory_consumer_desc nvarchar(64) Popis instance spotřebitele paměti. Pro více informací si prohlédněte následující tabulku.
object_id bigint ID objektu, ke kterému je přiřazena alokovaná paměť. Záporná hodnota pro systémové objekty.
xtp_object_id bigint Identifikátor objektu In-Memory OLTP, který odpovídá tabulce optimalizované pro paměť.
index_id int Indexové ID spotřebitele (pokud nějaké je). NULL pro základní tabulky.
allocated_bytes bigint Počet bajtů vyhrazených pro tohoto příjemce
used_bytes bigint Bajty používané tímto příjemcem Platí pouze pro VARHEAP.
allocation_count int Počet přidělení
partition_count int Pouze interní použití.
sizeclass_count int Pouze interní použití.
min_sizeclass int Pouze interní použití.
max_sizeclass int Pouze interní použití.
memory_consumer_address varbinary Interní adresa příjemce. Pouze pro interní použití.

Následující tabulka popisuje spotřebitele paměti uvedené ve sloupci memory_consumer_type :

Spotřebitel paměti Description Typ
256K page pool Paměťový fond používaný během aktivity kontrolních bodů. PGPOOL
4K page pool Paměťový fond používaný během aktivity kontrolních bodů. PGPOOL
Checkpoint table Pouze interní použití. VARHEAP
Ckpt file table Pouze interní použití. VARHEAP
Ckpt file watermark table Pouze interní použití. VARHEAP
Database internal heap Používá se k alokaci databázových dat, která jsou součástí paměťových výpisů, a neobsahují uživatelská data. VARHEAP
Database user heap Používá se k alokaci uživatelských dat pro databázi (řádky). VARHEAP
Encryption table Pouze interní použití. VARHEAP
Hash index Sleduje spotřebu paměti pro index. Označuje object_id tabulku a samotný index_id hashovací index. HASH
Large Rows File table Pouze interní použití. VARHEAP
LOB Page Allocator Paměť haldy používaná velkými řádky. VARHEAP
Logical range index partition table Pouze interní použití. VARHEAP
Logical root fragment table Pouze interní použití. VARHEAP
Logical Root table Pouze interní použití. VARHEAP
Logical Sequence Object table Pouze interní použití. VARHEAP
Physical range index partition table Pouze interní použití. VARHEAP
Physical root fragment table Pouze interní použití. VARHEAP
Physical Root table Pouze interní použití. VARHEAP
Physical Sequence object table Pouze interní použití. VARHEAP
Range index heap Soukromá halda používaná indexem rozsahu k alokaci stránek Bw-stromu. VARHEAP
Storage internal heap Pouze interní použití. VARHEAP
Storage user heap Pouze interní použití. VARHEAP
Table heap Paměť na haldě používaná In-Memory tabulkami. VARHEAP
Tail cache 256K page pool Pouze interní použití. PGPOOL
Tx Segment table Pouze interní použití. VARHEAP

Poznámky

Když má paměťově optimalizovaná tabulka index columnstore, systém používá některé interní tabulky, které spotřebovávají část paměti, k sledování dat pro index columnstore. Podrobnosti o těchto interních tabulkách a ukázkových dotazech ukazujících jejich spotřebu paměti najdete v sys.memory_optimized_tables_internal_attributes (Transact-SQL).

Povolení

Všechny řádky se vrátí, pokud máte v aktuální databázi povolení ZOBRAZIT STAV DATABÁZE. Jinak se vrátí prázdná sada řádků.

Pokud nemáte oprávnění ZOBRAZIT DATABÁZI, všechny sloupce se vrátí pro řádky v tabulkách, na které máte povolení VYBRAT.

Na SQL Server 2019 (15.x) a předchozích verzích jsou systémové tabulky vraceny pouze uživatelům s oprávněním ZOBRAZIT STAV DATABÁZE.

Pro verze SQL Server 2022 (16.x) a novějších je potřeba na databázi povolení ZOBRAZIT STAV VÝKONU DATABÁZE.

Examples

Dotazovací spotřebitelé paměti v aktuální databázi

Spusť následující dotaz na ukázkovou WideWorldImporters databázi, která obsahuje tabulky optimalizované pro paměť:

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;

Tady je soubor výsledků.

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

Celková paměť přidělená a využitá z tohoto DMV je stejná jako úroveň objektu v 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;

Tady je soubor výsledků.

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