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 权限。