sys.dm_os_memory_nodes (Transact-SQL)

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

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

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

适用范围:SQL Server(SQL Server 2008 到当前版本)。

列名

数据类型

说明

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

通过使用单页分配器并按此节点上运行的线程分配的已提交内存量(以 KB 为单位)。 该内存是从缓冲池分配的。 该值指示的是发生分配请求的节点,而不是满足分配请求的物理位置。

适用于:SQL Server 2008 到 SQL Server 2008 R2。

pages_kb

bigint

指定已提交的内存数量(以 KB 为单位),这是由内存管理器页面分配器从此 NUMA 节点分配的。 不可为 Null。

适用于:SQL Server 2012 到 SQL Server 2014。

multi_pages_kb

bigint

通过使用多页分配器并按此节点上运行的线程分配的已提交内存量(以 KB 为单位)。 该内存是从缓冲池之外分配的。 该值指示的是发生分配请求的节点,而不是满足分配请求的物理位置。

适用于:SQL Server 2008 到 SQL Server 2008 R2。

shared_memory_reserved_kb

bigint

指定从此节点中保留的共享内存数量(以 KB 为单位)。 不可为 Null。

shared_memory_committed_kb

bigint

指定在此节点上提交的共享内存数量(以 KB 为单位)。 不可为 Null。

cpu_affinity_mask

bigint

仅供内部使用。 不可为 Null。

适用于:SQL Server 2012 到 SQL Server 2014。

online_scheduler_mask

bigint

仅供内部使用。 不可为 Null。

适用于:SQL Server 2012 到 SQL Server 2014。

processor_group

smallint

仅供内部使用。 不可为 Null。

适用于:SQL Server 2012 到 SQL Server 2014。

foreign_committed_kb

bigint

指定从其他内存节点中提交的内存数量(以 KB 为单位)。 不可为 Null。

适用于:SQL Server 2012 到 SQL Server 2014。

权限

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

请参阅

参考

动态管理视图和函数 (Transact-SQL)

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