sys.dm_db_xtp_memory_consumers (Transact-SQL)
報告在 In-Memory OLTP 資料庫引擎中的資料庫層級記憶體取用者。 這個檢視會針對資料庫引擎所使用的每個記憶體取用者,各傳回一個資料列。
如需詳細資訊,請參閱<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 |
取用者的內部位址。 僅供內部使用。 |
備註
在輸出中,資料庫層級的配置器會參考使用者資料表、索引及系統資料表。 object_id = NULL 的 VARHEAP 會參考配置給具有可變長度資料行之資料表的記憶體。
權限
如果您具有目前資料庫的 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
下面是資料行子集的輸出。 資料庫層級的配置器會參考使用者資料表、索引及系統資料表。 具有 object_id = NULL 的 VARHEAP (最後一列) 會參考配置給資料表之資料列的記憶體 (在此範例中,它是 t1)。 轉換為 MB 時,已配置的位元組為 1340MB。
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)
這個 DMV 所配置和使用的總記憶體與 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