sys.dm_xtp_system_memory_consumers (Transact-SQL)
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例
报告内存中 OLTP 的系统级内存使用者。 用于这些消耗者的内存来自默认池(在用户线程的背景下分配时)或来自内部池(如果在系统线程的背景下分配)。
SELECT *
FROM sys.dm_xtp_system_memory_consumers;
有关详细信息,请参阅 内存中 OLTP(内存中优化)。
列名称 | 类型 | 描述 |
---|---|---|
memory_consumer_id | bigint | 内存消耗者的内部 ID。 |
memory_consumer_type | int | 表示内存消耗者类型的整数,具有以下值之一: 0 - 不应显示。 聚合两个或多个使用者的内存使用量。 1 - 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: 系统堆。 通用。 当前仅用于分配垃圾收集工作项。 - 或 - 后备链堆。 后备链在后备链表中包含的项目数达到预先确定的上限(通常约 5,000 项)时使用。 PGPOOL:对于 IO 系统池,有三种不同的大小:系统 4K 页池、系统 64-K 页池和 System 256-K 页面池。 |
lookaside_id | bigint | 线程本地后备链内存提供程序的 ID。 |
pagepool_id | bigint | 线程本地页池内存提供程序的 ID。 |
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