sys.dm_os_memory_nodes (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

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

针对每个物理 NUMA 内存节点都创建了节点。 这些节点可能与sys.dm_os_nodes中的 CPU 节点不同。

对于直接通过 Windows 内存分配例程进行的分配不会进行跟踪。 下表提供有关仅使用 SQL Server 内存管理器接口完成的内存分配的信息。

注意

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

列名称 数据类型 描述
memory_node_id smallint 指定内存节点的 ID。 与sys.dm_os_memory_clerksmemory_node_id相关。 不可为 Null。
virtual_address_space_reserved_kb bigint 指示既未提交也未映射到物理页的预留虚拟地址数量(以 KB 为单位)。 不可为 Null。
virtual_address_space_committed_kb bigint 指定已提交或映射到物理页的虚拟地址数量(以 KB 为单位)。 不可为 Null。
locked_page_allocations_kb bigint 指定 SQL Server 锁定的物理内存量(知识库(KB))。 不可为 Null。
single_pages_kb bigint 适用于:SQL Server 2008 (10.0.x) 至 SQL Server 2008 R2 (10.50.x)。

通过使用单页分配器并按此节点上运行的线程分配的已提交内存量(以 KB 为单位)。 该内存是从缓冲池分配的。 该值指示的是发生分配请求的节点,而不是满足分配请求的物理位置。
pages_kb bigint 适用于:SQL Server 2012 (11.x) 及更高版本。

指定已提交的内存数量(以 KB 为单位),这是由内存管理器页面分配器从此 NUMA 节点分配的。 不可为 Null。
multi_pages_kb bigint 适用于:SQL Server 2008 (10.0.x) 至 SQL Server 2008 R2 (10.50.x)。

通过使用多页分配器并按此节点上运行的线程分配的已提交内存量(以 KB 为单位)。 该内存是从缓冲池之外分配的。 此值指示发生分配请求的节点,而不是满足分配请求的物理位置。
shared_memory_reserved_kb bigint 指定从此节点中保留的共享内存数量(以 KB 为单位)。 不可为 Null。
shared_memory_committed_kb bigint 指定在此节点上提交的共享内存数量(以 KB 为单位)。 不可为 Null。
cpu_affinity_mask bigint 适用于:SQL Server 2012 (11.x) 及更高版本。

仅供内部使用。 不可为 Null。
online_scheduler_mask bigint 适用于:SQL Server 2012 (11.x) 及更高版本。

仅供内部使用。 不可为 Null。
processor_group smallint 适用于:SQL Server 2012 (11.x) 及更高版本。

仅供内部使用。 不可为 Null。
foreign_committed_kb bigint 适用于:SQL Server 2012 (11.x) 及更高版本。

指定从其他内存节点中提交的内存数量(以 KB 为单位)。 不可为 Null。
target_kb bigint 适用于:SQL Server 2016 (13.x) 及更高版本、SQL 数据库。

在知识库(KB)中指定内存节点的内存目标。
pdw_node_id int 适用于:Azure Synapse Analytics、Analytics Platform System (PDW)

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

权限

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

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

SQL Server 2022 及更高版本的权限

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

另请参阅

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