sys.dm_os_memory_brokers (Transact-SQL)

适用于:SQL Server Azure Synapse Analytics Analytics 平台系统(PDW)

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

内存中转站根据当前和预计的使用情况,在 SQL Server 中的各个组件之间公平分配内存分配。 内存中介器不执行分配。 它们只跟踪内存分配以计算分布情况。

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

注意

若要从 Azure Synapse Analytics 或 Analytics 平台系统(PDW)调用此名称,请使用名称 sys.dm_pdw_nodes_os_memory_brokers。 Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。

列名称 数据类型 描述
pool_id int 在资源池与资源调控器池相关联的情况下的资源池 ID。
memory_broker_type nvarchar(60) 内存中介器的类型。 SQL Server 中目前有三种类型的内存中转站,下面列出了这些代理的说明。

MEMORYBROKER_FOR_CACHE :分配供缓存对象使用的内存(不是缓冲池缓存)。

MEMORYBROKER_FOR_STEAL:从缓冲池中被盗的内存。 此内存由内存职员跟踪,其他组件不可重复使用,直到当前所有者释放该内存。

MEMORYBROKER_FOR_RESERVE:当前正在执行请求保留以供将来使用的内存。
allocations_kb bigint 已分配给这种类型的中介器的内存量(以 KB 为单位)。
allocations_kb_per_sec bigint 每秒钟的内存分配速率(以 KB 为单位)。 对于内存释放,该值可以为负值。
predicted_allocations_kb bigint 由中介器预测的已分配的内存量。 这基于内存使用模式。
target_allocations_kb bigint 基于当前设置和内存使用模式而建议分配的内存量(以 KB 为单位)。 该中介器应增长或缩减到此数目。
future_allocations_kb bigint 将在随后几秒内完成的预计分配量(以 KB 为单位)。
overall_limit_kb bigint 中转站可以分配的最大内存量(KB)。
last_notification nvarchar(60) 基于当前设置和使用模式的内存使用建议。 以下是有效值:

增长

shrink

稳定版
pdw_node_id int 适用于:Azure Synapse Analytics、Analytics Platform System (PDW)

此分发所在节点的标识符。

权限

对于 SQL Server 和 SQL 托管实例,需要 VIEW SERVER STATE 权限。

在 SQL 数据库“基本”、“S0”和“S1”服务目标中,对于“弹性池”中的数据库,服务器管理员帐户、Microsoft Entra 管理员帐户或 ##MS_ServerStateReader## 服务器角色中的成员身份为必填项。 对于所有其他 SQL 数据库服务目标,需要数据库的 VIEW DATABASE STATE 权限或 ##MS_ServerStateReader## 服务器角色中的成员身份。

SQL Server 2022 及更高版本的权限

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

另请参阅

与 SQL Server 操作系统相关的动态管理视图 (Transact-SQL)