共用方式為


sys.dm_db_xtp_memory_consumers (Transact-SQL)

適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體

報告記憶體內部 OLTP 資料庫引擎中的資料庫層級記憶體取用者。 檢視會針對資料庫引擎所使用的每個記憶體取用者,傳回一個數據列。 使用此 DMV 來查看記憶體如何分散到不同的內部物件。

如需詳細資訊,請參閱 記憶體內部 OLTP 概觀和使用案例

注意

視安裝的 SQL Server 版本而定,此系統動態管理檢視的輸出可能會不同。

資料行名稱 資料類型 描述
memory_consumer_id bigint 記憶體取用者的標識碼(內部)。
memory_consumer_type int 記憶體取用者的類型:

0 = 匯總。 (匯總兩個或多個取用者的記憶體使用量。它不應該顯示。

2 = VARHEAP (追蹤可變長度堆積的記憶體耗用量。)

3 = HASH (追蹤索引的記憶體耗用量。

4 = PGPOOL (資料庫頁面集區:追蹤用於運行時間作業的資料庫頁面集區的記憶體耗用量。例如,數據表變數和一些可串行化的掃描。每個資料庫只有一個此類型的記憶體取用者。
memory_consumer_type_desc nvarchar(64) 記憶體取用者的類型: VARHEAPHASHPGPOOL

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

備註

當記憶體優化數據表具有數據行存放區索引時,系統會使用一些內部數據表來追蹤數據行存放區索引的數據。 如需這些內部資料表及其記憶體耗用量的範例查詢詳細資訊,請參閱 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