sys.dm_os_memory_nodes (Transact-SQL)
适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Analytics 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_clerks memory_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 数据库基本、S0 和 S1 服务目标以及弹性池中的数据库、服务器管理员帐户、Microsoft Entra 管理员帐户或服务器角色的成员##MS_ServerStateReader##
身份是必需的。 对于所有其他 SQL 数据库服务目标,需要数据库的 VIEW DATABASE STATE
权限或 ##MS_ServerStateReader##
服务器角色中的成员身份。
SQL Server 2022 及更高版本的权限
要求对服务器具有 VIEW SERVER PERFORMANCE STATE 权限。