sys.dm_db_xtp_memory_consumers (Transact-SQL)
Сообщает о потребителях памяти уровня базы данных в компоненте Database Engine In-Memory OLTP. Представление возвращает по строке для каждого потребителя памяти, используемого компонентом Database Engine.
Дополнительные сведения см. в разделе In-Memory OLTP (оптимизация в памяти).
Применимо для следующих объектов: SQL Server (начиная с SQL Server 2014 до текущей версии). |
Имя столбца |
Тип данных |
Описание |
---|---|---|
memory_consumer_id |
bigint |
Идентификатор (внутренний) потребителя памяти. |
memory_consumer_type |
int |
Тип потребителя памяти:
|
memory_consumer_type_desc |
nvarchar(64) |
Тип потребителя памяти: VARHEAP, HASH или PGPOOL.
|
memory_consumer_desc |
nvarchar(64) |
Описание экземпляра потребителя памяти.
|
object_id |
bigint |
Идентификатор объекта, к которому относится выделенная память. Для системных объектов значение отрицательное. |
index_id |
int |
Идентификатор индекса потребителя (если применимо). Значение NULL для базовых таблиц. |
allocated_bytes |
bigint |
Число байтов, зарезервированных для этого потребителя памяти. |
used_bytes |
bigint |
Число байтов, используемых этим потребителем. Относится только к varheap. |
allocation_count |
int |
Количество выделений. |
partition_count |
int |
Только для внутреннего применения. |
sizeclass_count |
int |
Только для внутреннего применения. |
min_sizeclass |
int |
Только для внутреннего применения. |
max_sizeclass |
int |
Только для внутреннего применения. |
memory_consumer_address |
varbinary |
Внутренний адрес потребителя памяти. Только для внутреннего применения. |
Замечания
На выходе выделения пространства на уровнях базы данных представляют собой пользовательские таблицы, индексы и системные таблицы. VARHEAP с object_id = NULL относится к памяти, выделенной для таблицы со столбцами переменной длины.
Разрешения
Если имеется разрешение VIEW DATABASE STATE в текущей базе данных, возвращаются все строки. В противном случае возвращается пустой набор строк.
Если разрешения VIEW DATABASE нет, возвращаются все столбцы для строк в таблицах, для которых включено разрешение SELECT.
Системные таблицы возвращаются только для пользователей с разрешением VIEW DATABASE STATE.
Примеры
-- memory consumers (database level)
SELECT OBJECT_NAME(object_id), *
FROM sys.dm_db_xtp_memory_consumers;
Пользовательский сценарий
-- memory consumers (database level)
select convert(char(10), object_name(object_id)) as Name,
convert(char(10),memory_consumer_type_desc ) as memory_consumer_type_desc, object_id,index_id, allocated_bytes, used_bytes
from sys.dm_db_xtp_memory_consumers
Ниже приводятся выходные данные с подмножеством столбцов. Механизмы распределения памяти на уровнях базы данных — это пользовательские таблицы, индексы и системные таблицы. VARHEAP с object_id = NULL (последняя строка) — это память, выделенная строкам данных в таблицах (в примере ниже это t1). Число выбранных байт, преобразованное в МБ, составляет 1340 МБ.
Name memory_consumer_type_desc object_id index_id allocated_bytes used_bytes
---------- ------------------------- ----------- ----------- -------------------- --------------------
t3 HASH 629577281 2 8388608 8388608
t2 HASH 597577167 2 8388608 8388608
t1 HASH 565577053 2 1048576 1048576
NULL HASH -6 1 2048 2048
NULL VARHEAP -6 NULL 0 0
NULL HASH -5 3 8192 8192
NULL HASH -5 2 8192 8192
NULL HASH -5 1 8192 8192
NULL HASH -4 1 2048 2048
NULL VARHEAP -4 NULL 0 0
NULL HASH -3 1 2048 2048
NULL HASH -2 2 8192 8192
NULL HASH -2 1 8192 8192
NULL VARHEAP -2 NULL 196608 26496
NULL HASH 0 1 2048 2048
NULL PGPOOL 0 NULL 0 0
NULL VARHEAP NULL NULL 1405943808 1231220560
(17 row(s) affected)
Общая память, выделенная и используемая из данного динамического административного представления, идентична общей памяти на уровне объекта в таблице sys.dm_db_xtp_table_memory_stats (Transact-SQL).
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
total_allocated_MB total_used_MB
-------------------- --------------------
1358 1191
См. также
Основные понятия
Оптимизированные для памяти динамические административные представления таблиц (Transact-SQL)