sys.dm_os_hosts (Transact-SQL)

Applies to: yesSQL Server (all supported versions)

Returns all the hosts currently registered in an instance of SQL Server. This view also returns the resources that are used by these hosts.


To call this from Azure Synapse Analytics or Parallel Data Warehouse, use the name sys.dm_pdw_nodes_os_hosts.

Column name Data type Description
host_address varbinary(8) Internal memory address of the host object.
type nvarchar(60) Type of hosted component. For example,



SOSHOST_CLIENTID_MSDART = Microsoft Data Access Run Time
name nvarchar(32) Name of the host.
enqueued_tasks_count int Total number of tasks that this host has placed onto queues in SQL Server.
active_tasks_count int Number of currently running tasks that this host has placed onto queues.
completed_ios_count int Total number of I/Os issued and completed through this host.
completed_ios_in_bytes bigint Total byte count of the I/Os completed through this host.
active_ios_count int Total number of I/O requests related to this host that are currently waiting to complete.
default_memory_clerk_address varbinary(8) Memory address of the memory clerk object associated with this host. For more information, see sys.dm_os_memory_clerks (Transact-SQL).
pdw_node_id int Applies to: Azure Synapse Analytics, Parallel Data Warehouse

The identifier for the node that this distribution is on.


On SQL Server, requires VIEW SERVER STATE permission.
On SQL Database Basic, S0, and S1 service objectives, and for databases in elastic pools, the server admin account or the Azure Active Directory admin account is required. On all other SQL Database service objectives, the VIEW DATABASE STATE permission is required in the database.


SQL Server allows components, such as an OLE DB provider, that are not part of the SQL Server executable to allocate memory and participate in non-preemptive scheduling. These components are hosted by SQL Server, and all resources allocated by these components are tracked. Hosting allows SQL Server to better account for resources used by components external to the SQL Server executable.

Relationship Cardinalities

From To Relationship
sys.dm_os_hosts. default_memory_clerk_address sys.dm_os_memory_clerks. memory_clerk_address one to one
sys.dm_os_hosts. host_address sys.dm_os_memory_clerks. host_address one to one


The following example determines the total amount of memory committed by a hosted component.

Applies to: SQL Server 2012 (11.x) and later.
SELECT h.type, SUM(mc.pages_kb) AS commited_memory  
FROM sys.dm_os_memory_clerks AS mc   
INNER JOIN sys.dm_os_hosts AS h   
    ON mc.memory_clerk_address = h.default_memory_clerk_address  
GROUP BY h.type;  

See Also

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