Udostępnij za pomocą


sys.dm_xtp_system_memory_consumers (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Raportuje odbiorców pamięci na poziomie systemu dla In-Memory OLTP. Pamięć dla tych użytkowników pochodzi z puli domyślnej (gdy alokacja znajduje się w kontekście wątku użytkownika) lub z puli wewnętrznej (jeśli alokacja znajduje się w kontekście wątku systemowego).

SELECT *
FROM sys.dm_xtp_system_memory_consumers;

Aby uzyskać więcej informacji, zobacz In-Memory OLTP (In-Memory Optimization).

Nazwa kolumny Typ Description
memory_consumer_id bigint Wewnętrzny identyfikator odbiorcy pamięci.
memory_consumer_type int Liczba całkowita reprezentująca typ odbiorcy pamięci z jedną z następujących wartości:

0 — nie należy wyświetlać. Agreguje użycie pamięci co najmniej dwóch użytkowników.

1 — LOOKASIDE: Śledzi zużycie pamięci dla wyglądu systemu.

2 — VARHEAP: Śledzi zużycie pamięci dla sterta o zmiennej długości.

4 — Pula stron we/wy: śledzi użycie pamięci dla puli stron systemowych używanych na potrzeby operacji we/wy.
memory_consumer_type_desc nvarchar(16) Opis typu odbiorcy pamięci:

0 — nie należy wyświetlać

1 — LOOKASIDE

2 — VARHEAP

4 — PGPOOL
memory_consumer_desc nvarchar(64) Opis wystąpienia odbiorcy pamięci:

VARHEAP:
Sterta systemowa. Ogólnego przeznaczenia. Obecnie używane tylko do przydzielania elementów roboczych odzyskiwania pamięci.
— LUB —
Lookaside sterta. Używane przez lookasides, gdy liczba elementów znajdujących się na liście lookaside osiągnie wstępnie określony limit (zwykle około 5000 elementów).

PGPOOL: w przypadku pul systemu we/wy istnieją trzy różne rozmiary: pula stron systemu 4K, pula stron system 64-K i pula stron System 256-K.
lookaside_id bigint Identyfikator lokalnego dostawcy pamięci wątku, lookaside.
pagepool_id bigint Identyfikator dostawcy pamięci puli stron wątku lokalnego.
allocated_bytes bigint Liczba bajtów zarezerwowanych dla tego konsumenta.
used_bytes bigint Bajty używane przez tego konsumenta. Dotyczy tylko użytkowników pamięci varheap.

Począwszy od programu SQL Server 2022 (16.x), dotyczy odbiorców pamięci varheap i lookaside.
allocation_count int Liczba alokacji.

Począwszy od programu SQL Server 2022 (16.x), liczba alokacji z sterty systemu dla odbiorców pamięci wyszukiwania.
partition_count int Liczba partycji superbloku dla tego konsumenta pamięci. Aby uzyskać więcej informacji, zobacz Fragmentacja pamięci.
sizeclass_count int Liczba klas rozmiaru superbloku dla tego konsumenta pamięci. Fragmentacja pamięci.
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.

Permissions

Wymaga uprawnień WYŚWIETL STAN SERWERA na serwerze.

Uprawnienia dla programu SQL Server 2022 i nowszych

Wymaga uprawnienia WYŚWIETL STAN WYDAJNOŚCI SERWERA na serwerze.

Uwagi

W programie SQL Server 2022 (16.x) ten dynamiczny widok zarządzania ma dodatkowe kolumny specyficzne dla ulepszeń pamięci metadanych bazy danych TempDB zoptymalizowanych pod kątem pamięci.

Przykłady

W tym przykładzie dane wyjściowe danych wyjściowych odbiorców pamięci systemowej dla wystąpienia programu 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;

Dane wyjściowe zawierają wszystkie odbiorców pamięci na poziomie systemu. Na przykład istnieją konsumenci, którzy oczekują transakcji.

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

Aby wyświetlić łączną ilość pamięci zużywanej przez alokatory systemu:

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;

Oto zestaw wyników.

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