sys.dm_os_memory_brokers

SQL Server 的内部分配使用 SQL Server 内存管理器。跟踪来自 sys.dm_os_process_memory 的进程内存计数器与内部计数器之间的差异可以了解外部组件在 SQL Server 内存空间中的内存使用情况。

内存中介器基于当前使用量和预测的使用量来公平地在 SQL Server 内的各种组件之间分布内存分配。内存中介器不执行分配。它们只跟踪内存分配以计算分布情况。

下表提供了有关内存中介器的信息。

列名

数据类型

说明

memory_broker_type

nvarchar(60)

内存中介器的类型。目前,SQL Server 中有三种类型的内存中介器。

值说明
MEMORYBROKER_FOR_CACHE分配的供缓存对象使用的内存。
MEMORYBROKER_FOR_STEAL从缓冲池中盗用的内存。这种内存在当前所有者释放它之前,不能供其他组件重新使用。
MEMORYBROKER_FOR_RESERVE供当前正在执行的请求将来使用而保留的内存。

allocations_kb

bigint

已分配给这种类型的中介器的内存量(以 KB 为单位)。

allocations_per_sec

int

用于该中介器的当前分配速率。

target_allocations_kb

bigint

基于当前设置和内存使用模式而建议分配的内存量(以 KB 为单位)。该中介器应增长或缩减到此数目。

future_allocations_kb

bigint

将在随后几秒内完成的预计分配量(以 KB 为单位)。

last_notification

nvarchar(60)

基于当前设置和使用模式的内存使用建议。以下是有效值:

  • 增长

  • 缩减

  • 稳定

pool_id

int

在资源池与资源调控器池相关联的情况下的资源池 ID。

allocations_kb_per_sec

bigint

每秒钟的内存分配速率(以 KB 为单位)。对于内存释放,该值可以为负值。

predicated_allocations_kb

bigint

由中介器预测的已分配的内存量。这基于内存使用模式。

overall_limit_kb

bigint

中介器可分配的最大内存量(以 KB 为单位)。

权限

需要对服务器具有 VIEW SERVER STATE 权限。