sys.dm_xtp_system_memory_consumers (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Сообщает потребителям памяти уровня системы для OLTP в памяти. Память для этих потребителей поступает из пула по умолчанию (если выделение находится в контексте потока пользователя) или из внутреннего пула (если выделение находится в контексте системного потока).
SELECT *
FROM sys.dm_xtp_system_memory_consumers;
Дополнительные сведения см. в разделе In-Memory OLTP (оптимизация в памяти).
Имя столбца | Тип | Описание |
---|---|---|
memory_consumer_id | bigint | Внутренний идентификатор потребителя памяти. |
memory_consumer_type | int | Целое число, представляющее тип потребителя памяти с одним из следующих значений: 0 — не должно отображаться. Суммирует использование памяти для двух или более потребителей. 1 — LOOKASIDE (отслеживает потребление памяти для резервного блока памяти системы). 2 — VARHEAP (отслеживает потребление памяти для кучи переменной длины). 4 — пуд страниц ввода-вывода (отслеживает потребление памяти для системного пула страниц, используемого для операций ввода-вывода). |
memory_consumer_type_desc | nvarchar(16) | Описание типа потребителя памяти. 0 — не должно отображаться 1 — LOOKASIDE 2 — VARHEAP 4 — PGPOOL |
memory_consumer_desc | nvarchar(64) | Описание экземпляра потребителя памяти. VARHEAP: Системная куча. Общего назначения. В настоящее время используется только для выделения рабочих элементов сборки мусора. -ИЛИ- Куча резервного блока памяти. Используется резервными блоками памяти, когда количество элементов в списке достигает определенного предела (обычно около 5000 элементов). PGPOOL: для системных пулов операций ввода-вывода существует три разных размера: пул страниц System 4K, пул страниц System 64-K и пул страниц System 256 K. |
lookaside_id | bigint | Идентификатор поставщика конкретных потоков локальной памяти резервного блока. |
pagepool_id | bigint | Идентификатор поставщика конкретных потоков локальной памяти пула страниц. |
allocated_bytes | bigint | Число байтов, зарезервированных для этого потребителя памяти. |
used_bytes | bigint | Число байтов, используемых этим потребителем. Применимо только для потребителей памяти varheap. Начиная с SQL Server 2022 (16.x), применяется к потребителям памяти varheap и lookaside. |
allocation_count | int | Количество выделений. Начиная с SQL Server 2022 (16.x), количество выделений из системной кучи для потребителей памяти lookaside. |
partition_count | int | Только для внутреннего применения. |
sizeclass_count | int | Только для внутреннего применения. |
min_sizeclass | int | Только для внутреннего применения. |
max_sizeclass | int | Только для внутреннего применения. |
memory_consumer_address | varbinary | Внутренний адрес потребителя памяти. |
Разрешения
Необходимы разрешения VIEW SERVER STATE на сервере.
Разрешения для SQL Server 2022 и более поздних версий
Требуется разрешение VIEW SERVER PERFORMANCE STATE на сервере.
Замечания
В SQL Server 2022 (16.x) этот dmV содержит дополнительные столбцы, относящиеся к усовершенствованиям памяти метаданных TempDB, оптимизированным для памяти tempDB.
Примеры
В этом примере выходные данные потребителей системной памяти для экземпляра 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;
Вывод показывает всех потребителей памяти на уровне системы. Например, имеются потребители для резервных блоков памяти транзакции.
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
Чтобы определить общий объем памяти, потребляемой блоками распределения системы, выполните следующие действия.
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;
Результирующий набор:
total_allocated_MB total_used_MB
-------------------- --------------------
2 2