sys.dm_os_memory_pools (Transact-SQL)

Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

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

Note

To call this from Azure Synapse Analytics or Analytics Platform System (PDW), use the name sys.dm_pdw_nodes_os_memory_pools. This syntax is not supported by serverless SQL pool in Azure Synapse Analytics.

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, 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.

Remarks

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)