sys.dm_os_memory_nodes

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

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

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

列名

数据类型

说明

memory_node_id

smallint

内存节点的 ID。与 sys.dm_os_memory_clerksmemory_node_id 相关。

virtual_address_space_reserved_kb

bigint

既未提交也未映射到物理页的虚拟地址的保留数(以 KB 为单位)。

virtual_address_space_committed_kb

bigint

已提交或已映射到物理页的虚拟地址数量(以 KB 为单位)。

locked_page_allocations_kb

bigint

被 SQL Server 锁定的物理内存量(以 KB 为单位)。

single_pages_kb

bigint

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

multi_pages_kb

bigint

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

shared_memory_reserved_kb

bigint

此节点保留的共享内存量(以 KB 为单位)。

shared_memory_committed_kb

bigint

此节点上已提交的共享内存量(以 KB 为单位)。

权限

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