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