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_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 |
通过使用单页分配器并按此节点上运行的线程分配的已提交内存量(以 KB 为单位)。 该内存是从缓冲池分配的。 该值指示的是发生分配请求的节点,而不是满足分配请求的物理位置。
|
|
pages_kb |
bigint |
指定已提交的内存数量(以 KB 为单位),这是由内存管理器页面分配器从此 NUMA 节点分配的。 不可为 Null。
|
|
multi_pages_kb |
bigint |
通过使用多页分配器并按此节点上运行的线程分配的已提交内存量(以 KB 为单位)。 该内存是从缓冲池之外分配的。 该值指示的是发生分配请求的节点,而不是满足分配请求的物理位置。
|
|
shared_memory_reserved_kb |
bigint |
指定从此节点中保留的共享内存数量(以 KB 为单位)。 不可为 Null。 |
|
shared_memory_committed_kb |
bigint |
指定在此节点上提交的共享内存数量(以 KB 为单位)。 不可为 Null。 |
|
cpu_affinity_mask |
bigint |
仅供内部使用。 不可为 Null。
|
|
online_scheduler_mask |
bigint |
仅供内部使用。 不可为 Null。
|
|
processor_group |
smallint |
仅供内部使用。 不可为 Null。
|
|
foreign_committed_kb |
bigint |
指定从其他内存节点中提交的内存数量(以 KB 为单位)。 不可为 Null。
|
权限
要求对服务器拥有 VIEW SERVER STATE 权限。