sys.dm_os_memory_nodes (Transact-SQL)
Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Allocations that are internal to SQL Server use the SQL Server memory manager. Tracking the difference between process memory counters from sys.dm_os_process_memory and internal counters can indicate memory use from external components in the SQL Server memory space.
Nodes are created per physical NUMA memory nodes. These might be different from the CPU nodes in sys.dm_os_nodes.
No allocations done directly through Windows memory allocations routines are tracked. The following table provides information about memory allocations done only by using SQL Server memory manager interfaces.
Note
To call this from Azure Synapse Analytics or Analytics Platform System (PDW), use the name sys.dm_pdw_nodes_os_memory_nodes. This syntax is not supported by serverless SQL pool in Azure Synapse Analytics.
Column name | Data type | Description |
---|---|---|
memory_node_id | smallint | Specifies the ID of the memory node. Related to memory_node_id of sys.dm_os_memory_clerks. Not nullable. |
virtual_address_space_reserved_kb | bigint | Indicates the number of virtual address reservations, in kilobytes (KB), which are neither committed nor mapped to physical pages. Not nullable. |
virtual_address_space_committed_kb | bigint | Specifies the amount of virtual address, in KB, that has been committed or mapped to physical pages. Not nullable. |
locked_page_allocations_kb | bigint | Specifies the amount of physical memory, in KB, that has been locked by SQL Server. Not nullable. |
single_pages_kb | bigint | Applies to: SQL Server 2008 (10.0.x) through SQL Server 2008 R2 (10.50.x). Amount of committed memory, in KB, that is allocated by using the single page allocator by threads running on this node. This memory is allocated from the buffer pool. This value indicates the node where allocations request occurred, not the physical location where the allocation request was satisfied. |
pages_kb | bigint | Applies to: SQL Server 2012 (11.x) and later. Specifies the amount of committed memory, in KB, which is allocated from this NUMA node by Memory Manager Page Allocator. Not nullable. |
multi_pages_kb | bigint | Applies to: SQL Server 2008 (10.0.x) through SQL Server 2008 R2 (10.50.x). Amount of committed memory, in KB, that is allocated by using the multipage allocator by threads running on this node. This memory is from outside the buffer pool. This value indicates the node where the allocation requests occurred, not the physical location where the allocation request was satisfied. |
shared_memory_reserved_kb | bigint | Specifies the amount of shared memory, in KB, that has been reserved from this node. Not nullable. |
shared_memory_committed_kb | bigint | Specifies the amount of shared memory, in KB, that has been committed on this node. Not nullable. |
cpu_affinity_mask | bigint | Applies to: SQL Server 2012 (11.x) and later. Internal use only. Not nullable. |
online_scheduler_mask | bigint | Applies to: SQL Server 2012 (11.x) and later. Internal use only. Not nullable. |
processor_group | smallint | Applies to: SQL Server 2012 (11.x) and later. Internal use only. Not nullable. |
foreign_committed_kb | bigint | Applies to: SQL Server 2012 (11.x) and later. Specifies the amount of committed memory, in KB, from other memory nodes. Not nullable. |
target_kb | bigint | Applies to: SQL Server 2016 (13.x) and later, SQL Database. Specifies the memory goal for the memory node, in KB. |
pdw_node_id | int | Applies to: Azure Synapse Analytics, Analytics Platform System (PDW) The identifier for the node that this distribution is on. |
Permissions
On SQL Server and SQL Managed Instance, requires VIEW SERVER STATE
permission.
On SQL Database Basic, S0, and S1 service objectives, and for databases in elastic pools, the server admin account, the Microsoft Entra admin account, or membership in the ##MS_ServerStateReader##
server role is required. On all other SQL Database service objectives, either the VIEW DATABASE STATE
permission on the database, or membership in the ##MS_ServerStateReader##
server role is required.
Permissions for SQL Server 2022 and later
Requires VIEW SERVER PERFORMANCE STATE permission on the server.
See also
SQL Server Operating System Related Dynamic Management Views (Transact-SQL)