适用于:SQL Server
Azure Synapse 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 池不支持此语法。
| 列名称 | 数据类型 | Description |
|---|---|---|
| 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) 此分发所打开的节点的标识符。 |
Permissions
在 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 权限。