Поделиться через


sys.dm_db_xtp_memory_consumers (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Сообщает потребителям памяти уровня базы данных в ядре СУБД OLTP в памяти. Представление возвращает по строке для каждого потребителя памяти, используемого компонентом Database Engine. Используйте этот dmV, чтобы узнать, как память распределяется между различными внутренними объектами.

Дополнительные сведения см . в обзоре и сценариях использования OLTP в памяти.

Примечание.

Выходные данные этого динамического административного представления системы могут отличаться в зависимости от установленной версии SQL Server.

Имя столбца Тип данных Description
memory_consumer_id bigint Идентификатор (внутренний) потребителя памяти.
memory_consumer_type int Тип потребителя памяти:

0 = агрегирование. (Агрегирует использование памяти двух или нескольких потребителей. Оно не должно отображаться.)

2 = VARHEAP (отслеживает потребление памяти для кучи переменной длины.)

3 = HASH (отслеживает потребление памяти для индекса.)

4 = PGPOOL (пул страниц базы данных: отслеживает потребление памяти для пула страниц базы данных, используемого для операций среды выполнения. Например, табличные переменные и некоторые сериализуемые проверки. Существует только один потребитель памяти этого типа для каждой базы данных.)
memory_consumer_type_desc nvarchar(64) Тип потребителя памяти: VARHEAP, HASHили PGPOOL.

0 — (не должно отображаться)
2 — VARHEAP
3 — HASH
4 — PGPOOL
memory_consumer_desc nvarchar(64) Описание экземпляра потребителя памяти. Дополнительные сведения см. в следующей таблице.
object_id bigint Идентификатор объекта, к которому относится выделенная память. Для системных объектов значение отрицательное.
xtp_object_id bigint Идентификатор объекта OLTP в памяти, соответствующий оптимизированной для памяти таблице.
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 Внутренний адрес потребителя памяти. Только для внутреннего пользования.

В следующей таблице описаны потребители памяти, указанные в столбце memory_consumer_type :

Потребитель памяти Описание Тип
256K page pool Пул памяти, используемый во время действия контрольной точки. PGPOOL
4K page pool Пул памяти, используемый во время действия контрольной точки. PGPOOL
Checkpoint table Только для внутреннего применения. VARHEAP
Ckpt file table Только для внутреннего применения. VARHEAP
Ckpt file watermark table Только для внутреннего применения. VARHEAP
Database internal heap Используется для выделения данных базы данных, включенных в дампы памяти, и не включает пользовательские данные. VARHEAP
Database user heap Используется для выделения данных пользователя для базы данных (строк). VARHEAP
Encryption table Только для внутреннего применения. VARHEAP
Hash index Отслеживает потребление памяти для индекса. Указывает object_id таблицу и index_id сам хэш-индекс. HASH
Large Rows File table Только для внутреннего применения. VARHEAP
LOB Page Allocator Кучи памяти, используемой большими строками. VARHEAP
Logical range index partition table Только для внутреннего применения. VARHEAP
Logical root fragment table Только для внутреннего применения. VARHEAP
Logical Root table Только для внутреннего применения. VARHEAP
Logical Sequence Object table Только для внутреннего применения. VARHEAP
Physical range index partition table Только для внутреннего применения. VARHEAP
Physical root fragment table Только для внутреннего применения. VARHEAP
Physical Root table Только для внутреннего применения. VARHEAP
Physical Sequence object table Только для внутреннего применения. VARHEAP
Range index heap Частная куча, используемая индексом диапазона для выделения страниц дерева Bw. VARHEAP
Storage internal heap Только для внутреннего применения. VARHEAP
Storage user heap Только для внутреннего применения. VARHEAP
Table heap Кучи памяти, используемой таблицами в памяти. VARHEAP
Tail cache 256K page pool Только для внутреннего применения. PGPOOL
Tx Segment table Только для внутреннего применения. VARHEAP

Замечания

Если в оптимизированной для памяти таблице есть индекс columnstore, система использует некоторые внутренние таблицы, которые используют некоторую память для отслеживания данных индекса columnstore. Дополнительные сведения об этих внутренних таблицах и примерах запросов, показывающих потребление памяти, см. в sys.memory_optimized_tables_internal_attributes (Transact-SQL).

Разрешения

Если имеется разрешение VIEW DATABASE STATE в текущей базе данных, возвращаются все строки. В противном случае возвращается пустой набор строк.

Если у вас нет разрешения VIEW DATABASE, все столбцы возвращаются для строк в таблицах с разрешением SELECT.

В SQL Server 2019 (15.x) и предыдущих версиях системные таблицы возвращаются только для пользователей с разрешением VIEW DATABASE STATE.

Для SQL Server 2022 (16.x) и более поздних версий требуется разрешение VIEW DATABASE PERFORMANCE STATE в базе данных.

Примеры

Запрос потребителей памяти в текущей базе данных

Выполните следующий запрос к образцу WideWorldImporters базы данных, содержащей оптимизированные для памяти таблицы:

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;

Вот результирующий набор.

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

Общая память, выделенная и используемая этим динамическим представлением, совпадает с уровнем объекта в 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;

Вот результирующий набор.

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