sys.dm_xtp_system_memory_consumers (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
報告記憶體內部 OLTP 的系統層級記憶體取用者。 這些取用者的記憶體來自預設集區(當配置位於使用者線程的內容中時)或來自內部集區(如果配置位於系統線程的內容中)。
SELECT *
FROM sys.dm_xtp_system_memory_consumers;
如需詳細資訊,請參閱 In-Memory OLTP (記憶體中最佳化)。
資料行名稱 | 類型 | 描述 |
---|---|---|
memory_consumer_id | bigint | 記憶體取用者的內部標識碼。 |
memory_consumer_type | int | 整數,表示具有下列其中一個值的記憶體取用者類型: 0 - 不應該顯示。 匯總兩個或多個取用者的記憶體使用量。 1 - LOOKASIDE:追蹤系統 Lookaside 的記憶體耗用量。 2 - VARHEAP:追蹤可變長度堆積的記憶體耗用量。 4 - IO 頁面集區:追蹤用於IO作業之系統頁面集區的記憶體耗用量。 |
memory_consumer_type_desc | nvarchar(16) | 記憶體取用者類型的描述: 0 - 不應該顯示 1 - LOOKASIDE 2 - VARHEAP 4 - PGPOOL |
memory_consumer_desc | nvarchar(64) | 記憶體取用者實例的描述: VARHEAP: 系統堆積。 一般用途。 目前只用來配置垃圾收集工作專案。 -或- Lookaside 堆積。 當 lookaside 列表中所包含的項目數目達到預先決定的上限時,由 lookaside 使用(通常大約 5,000 個專案)。 PGPOOL:針對IO系統集區,有三種不同的大小:系統4K頁面集區、系統64-K頁面集區和系統256-K 頁面集區。 |
lookaside_id | bigint | 線程本機、lookaside 記憶體提供者的標識碼。 |
pagepool_id | bigint | 線程本機頁面集區內存提供者的標識碼。 |
allocated_bytes | bigint | 保留給這個取用者的位元元組數目。 |
used_bytes | bigint | 這個取用者所使用的位元組。 僅適用於 varheap 記憶體取用者。 從 SQL Server 2022 (16.x) 開始,適用於 varheap 和 lookaside 記憶體取用者。 |
allocation_count | int | 配置數目。 從 SQL Server 2022 (16.x)開始,系統堆積中尋找記憶體取用者的配置數目。 |
partition_count | int | 僅供內部使用。 |
sizeclass_count | int | 僅供內部使用。 |
min_sizeclass | int | 僅供內部使用。 |
max_sizeclass | int | 僅供內部使用。 |
memory_consumer_address | varbinary | 取用者的內部位址。 |
權限
需要伺服器上的 VIEW SERVER STATE 許可權。
SQL Server 2022 和更新版本的權限
需要伺服器上的 VIEW SERVER PERFORMANCE STATE 權限。
備註
在 SQL Server 2022 (16.x)中,此 DMV 具有記憶體優化 TempDB 元數據記憶體改善特有的其他數據行。
範例
此範例會輸出 SQL Server 實體的系統記憶體取用者:
SELECT memory_consumer_type_desc,
memory_consumer_desc,
allocated_bytes / 1024 as allocated_bytes_kb,
used_bytes / 1024 as used_bytes_kb,
allocation_count
FROM sys.dm_xtp_system_memory_consumers;
輸出會顯示系統層級的所有記憶體取用者。 例如,有取用者可以放在一邊查看交易。
memory_consumer_type_desc memory_consumer_desc allocated_bytes_kb used_bytes_kb allocation_count
------------------------------- --------------------- ------------------- -------------- ----------------
VARHEAP Lookaside heap 0 0 0
VARHEAP System heap 768 0 2
LOOKASIDE GC transaction map entry 64 64 910
LOOKASIDE Redo transaction map entry 128 128 1260
LOOKASIDE Recovery table cache entry 448 448 8192
LOOKASIDE Transaction recent rows 3264 3264 4444
LOOKASIDE Range cursor 0 0 0
LOOKASIDE Hash cursor 3200 3200 11070
LOOKASIDE Transaction save-point set entry 0 0 0
LOOKASIDE Transaction partially-inserted rows set 704 704 1287
LOOKASIDE Transaction constraint set 576 576 1940
LOOKASIDE Transaction save-point set 0 0 0
LOOKASIDE Transaction write set 704 704 672
LOOKASIDE Transaction scan set 320 320 156
LOOKASIDE Transaction read set 704 704 343
LOOKASIDE Transaction 4288 4288 1459
PGPOOL System 256K page pool 5120 5120 20
PGPOOL System 64K page pool 0 0 0
PGPOOL System 4K page pool 24 24 6
若要檢視系統設定器耗用的總記憶體:
SELECT SUM(allocated_bytes) / (1024 * 1024) AS total_allocated_MB,
SUM(used_bytes) / (1024 * 1024) AS total_used_MB
FROM sys.dm_xtp_system_memory_consumers;
以下為結果集。
total_allocated_MB total_used_MB
-------------------- --------------------
2 2