sys.dm_os_hosts (Transact-SQL)
Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Returns all the hosts currently registered in an instance of SQL Server. This view also returns the resources that are used by these hosts.
Note
To call this from Azure Synapse Analytics or Analytics Platform System (PDW), use the name sys.dm_pdw_nodes_os_hosts. This syntax is not supported by serverless SQL pool in Azure Synapse Analytics.
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_SERVERSNI= SQL Server Native Interface SOSHOST_CLIENTID_SQLOLEDB = SQL Server Native Client OLE DB Provider 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, 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 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 |
Examples
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)