Udostępnij za pomocą


sys.dm_db_xtp_memory_consumers (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Raportuje konsumentów pamięci na poziomie bazy danych w silniku bazy danych In-Memory OLTP. Widok zwraca wiersz dla każdego konsumenta pamięci, którego używa silnik bazy danych. Użyj tego DMV, aby zobaczyć, jak pamięć jest rozłożona między różnymi wewnętrznymi obiektami.

Aby uzyskać więcej informacji, zobacz In-Memory OMÓWIENIE OLTP i scenariusze użycia.

Uwaga / Notatka

Wynik tego dynamicznego widoku zarządzania systemem może się różnić w zależności od zainstalowanej wersji SQL Server.

Nazwa kolumny Typ danych Description
memory_consumer_id bigint ID (wewnętrzny) konsumenta pamięci.
memory_consumer_type int Typ konsumenta pamięci:

0 = Agregacja. (Agreguje zużycie pamięci przez dwóch lub więcej konsumentów. Nie powinno być wyświetlane.)

2 = VARHEAP (Śledzi zużycie pamięci dla sterty o zmiennej długości.)

3 = HASH (Śledzi zużycie pamięci dla indeksu.)

4 = PGPOOL (Pula stron bazy danych: Śledzi zużycie pamięci dla puli stron bazy danych używanej do operacji w czasie działania. Na przykład zmienne tabelowe i niektóre skany serializowane. Na bazę danych jest tylko jeden użytkownik pamięci tego typu.)
memory_consumer_type_desc nvarchar(64) Typ konsumenta pamięci: VARHEAP, HASH, lub PGPOOL.

0 - (Nie powinno być wyświetlane)
2 - VARHEAP
3 - HASH
4 - PGPOOL
memory_consumer_desc nvarchar(64) Opis instancji konsumenta pamięci. Aby uzyskać więcej informacji, zapoznaj się z tabelą, która się zachowuje.
object_id bigint ID obiektu, do którego przypisana jest przydzielona pamięć. Wartość ujemna dla obiektów systemowych.
xtp_object_id bigint In-Memory ID obiektu OLTP odpowiadający tabeli zoptymalizowanej pod pamięć.
index_id int Identyfikator indeksu konsumenta (jeśli taki istnieje). NULL dla tabel bazowych.
allocated_bytes bigint Liczba bajtów zarezerwowanych dla tego konsumenta.
used_bytes bigint Bajty używane przez tego konsumenta. Dotyczy tylko .VARHEAP
allocation_count int Liczba alokacji.
partition_count int Tylko do użytku wewnętrznego.
sizeclass_count int Tylko do użytku wewnętrznego.
min_sizeclass int Tylko do użytku wewnętrznego.
max_sizeclass int Tylko do użytku wewnętrznego.
memory_consumer_address varbinary Wewnętrzny adres odbiorcy. Tylko do użytku wewnętrznego.

Poniższa tabela opisuje konsumpców pamięci określonych w kolumnie memory_consumer_type :

Konsument pamięci Description Typ
256K page pool Pula pamięci używana podczas aktywności punktów kontrolnych. PGPOOL
4K page pool Pula pamięci używana podczas aktywności punktów kontrolnych. PGPOOL
Checkpoint table Tylko do użytku wewnętrznego. VARHEAP
Ckpt file table Tylko do użytku wewnętrznego. VARHEAP
Ckpt file watermark table Tylko do użytku wewnętrznego. VARHEAP
Database internal heap Używane do alokacji danych bazy danych zawartych w zrzutach pamięci, które nie zawierają danych użytkownika. VARHEAP
Database user heap Używany do alokacji danych użytkownika do bazy danych (wierszy). VARHEAP
Encryption table Tylko do użytku wewnętrznego. VARHEAP
Hash index Śledzi zużycie pamięci dla indeksu. Wskazuje object_id tabelę oraz samego index_id indeksu skrótu. HASH
Large Rows File table Tylko do użytku wewnętrznego. VARHEAP
LOB Page Allocator Pamięć stosu używana przez duże wiersze. VARHEAP
Logical range index partition table Tylko do użytku wewnętrznego. VARHEAP
Logical root fragment table Tylko do użytku wewnętrznego. VARHEAP
Logical Root table Tylko do użytku wewnętrznego. VARHEAP
Logical Sequence Object table Tylko do użytku wewnętrznego. VARHEAP
Physical range index partition table Tylko do użytku wewnętrznego. VARHEAP
Physical root fragment table Tylko do użytku wewnętrznego. VARHEAP
Physical Root table Tylko do użytku wewnętrznego. VARHEAP
Physical Sequence object table Tylko do użytku wewnętrznego. VARHEAP
Range index heap Prywatna kopca używana przez indeks zakresu do alokacji stron drzewa Bw. VARHEAP
Storage internal heap Tylko do użytku wewnętrznego. VARHEAP
Storage user heap Tylko do użytku wewnętrznego. VARHEAP
Table heap Pamięć kopcowa używana przez In-Memory tabele. VARHEAP
Tail cache 256K page pool Tylko do użytku wewnętrznego. PGPOOL
Tx Segment table Tylko do użytku wewnętrznego. VARHEAP

Uwagi

Gdy tabela zoptymalizowana pod pamięć ma indeks columnstore, system używa wewnętrznych tabel, które zużywają część pamięci, do śledzenia danych dla indeksu columnstore. Szczegóły dotyczące tych wewnętrznych tabel i przykładowych zapytań pokazujących ich zużycie pamięci można znaleźć w sys.memory_optimized_tables_internal_attributes (Transact-SQL).

Permissions

Wszystkie wiersze są zwracane, jeśli masz uprawnienia VIEW DATABASE STATE na bieżącej bazie danych. W przeciwnym razie zwracany jest pusty zestaw wierszy.

Jeśli nie masz uprawnień VIEW DATABASE, wszystkie kolumny są zwracane dla wierszy w tabelach, na które masz uprawnienia SELECT.

W SQL Server 2019 (15.x) i poprzednich wersjach tabele systemowe zwracane są tylko dla użytkowników posiadających uprawnienia VIEW DATABASE STATE.

W przypadku SQL Server 2022 (16.x) i późniejszych wersji wymagane jest pozwolenie VIEW DATABASE PERFORMANCE STATE na bazie danych.

Przykłady

Zapytania o konsumentów pamięci w aktualnej bazie danych

Wykonaj następujące zapytanie względem przykładowej WideWorldImporters bazy danych, która zawiera tabele zoptymalizowane pod pamięć:

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;

Oto zestaw wyników.

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

Całkowita ilość przydzielonej i używanej pamięci z tego DMV jest taka sama jak poziom obiektu w 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;

Oto zestaw wyników.

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