次の方法で共有


sys.dm_db_xtp_memory_consumers (Transact-SQL)

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance

インメモリ OLTP データベース エンジンのデータベース レベルのメモリ コンシューマーを報告します。 このビューは、データベース エンジンが使用するメモリ コンシューマーごとに 1 行を返します。 この DMV を使用して、さまざまな内部オブジェクト間でメモリがどのように分散されているかを確認します。

詳細については、「 In-Memory OLTP の概要と使用シナリオを参照してください。

Note

このシステム動的管理ビューの出力は、インストールされている SQL Server のバージョンによって異なる場合があります。

列名 データ型 説明
memory_consumer_id bigint メモリ コンシューマーの ID (内部)。
memory_consumer_type int メモリ コンシューマーの種類:

0 = 集計。 (2 つ以上のコンシューマーのメモリ使用量を集計します。表示しないでください)。)

2 = VARHEAP (可変長ヒープのメモリ消費量を追跡します)。

3 = HASH (インデックスのメモリ消費量を追跡します)。

4 = PGPOOL (DB ページ プール: ランタイム操作に使用されるデータベース ページ プールのメモリ消費量を追跡します。たとえば、テーブル変数やシリアル化可能なスキャンなどです。この種類のメモリ コンシューマーは、データベースごとに 1 つだけ存在します)。
memory_consumer_type_desc nvarchar(64) メモリ コンシューマーの種類: VARHEAPHASH、または PGPOOL

0 - (表示しないでください)
2- VARHEAP
3- HASH
4- PGPOOL
memory_consumer_desc nvarchar(64) メモリ コンシューマー インスタンスの説明。 詳細については、次の表を参照してください。
object_id bigint 割り当てられたメモリが属性付けされるオブジェクト ID。 システム オブジェクトの負の値。
xtp_object_id bigint メモリ最適化テーブルに対応するインメモリ OLTP オブジェクト ID。
index_id int コンシューマーのインデックス ID (存在する場合)。 ベース テーブルの場合は 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 列で指定されたメモリ コンシューマーについて説明します。

メモリ コンシューマー 説明 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

解説

メモリ最適化テーブルに列ストア インデックスがある場合、システムは、いくつかのメモリを消費するいくつかの内部テーブルを使用して、列ストア インデックスのデータを追跡します。 これらの内部テーブルとそのメモリ消費量を示すサンプル クエリの詳細については、「 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

この DMV から割り当てられ、使用されるメモリの合計は、 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