sys.dm_os_memory_pools (Transact-SQL)

APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Returns a row for each object store in the instance of SQL Server. You can use this view to monitor cache memory use and to identify bad caching behavior


To call this from Azure Synapse Analytics (SQL DW) or Parallel Data Warehouse, use the name sys.dm_pdw_nodes_os_memory_pools.

Column name Data type Description
memory_pool_address varbinary(8) Memory address of the entry that represents the memory pool. Is not nullable.
pool_id int ID of a specific pool within a set of pools. Is not nullable.
type nvarchar(60) Type of object pool. Is not nullable. For more information, see sys.dm_os_memory_clerks (Transact-SQL).
name nvarchar(256) System-assigned name of this memory object. Is not nullable.
max_free_entries_count bigint Maximum number of free entries that a pool can have. Is not nullable.
free_entries_count bigint Number of free entries currently in the pool. Is not nullable.
removed_in_all_rounds_count bigint Number of entries removed from the pool since the instance of SQL Server was started. Is not nullable.
pdw_node_id int Applies to: Azure Synapse Analytics (SQL DW), Parallel Data Warehouse

The identifier for the node that this distribution is on.


On SQL Server, requires VIEW SERVER STATE permission.
On SQL Database Premium Tiers, requires the VIEW DATABASE STATE permission in the database. On SQL Database Standard and Basic Tiers, requires the Server admin or an Azure Active Directory admin account.


SQL Server components sometimes use a common pool framework to cache homogeneous, stateless types of data. The pool framework is simpler than cache framework. All entries in the pools are considered equal. Internally, pools are memory clerks and can be used in places where memory clerks are used.

See Also

SQL Server Operating System Related Dynamic Management Views (Transact-SQL)