Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza 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
Treści powiązane
- Dynamiczne widoki zarządzania tabeli zoptymalizowane pod kątem pamięci (Transact-SQL)
- Metadane bazy danych tempdb zoptymalizowane pod kątem pamięci (HkTempDB) nie są błędami pamięci
- sys.sp_xtp_force_gc (Transact-SQL)
- sys.sp_xtp_checkpoint_force_garbage_collection (Transact-SQL)
- In-Memory OLTP (optymalizacjaIn-Memory)