sys.dm_os_hosts (Transact-SQL)

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW)

返回当前在 SQL Server 实例中注册的所有主机。 该视图还返回这些主机使用的资源。

注意

若要从 Azure Synapse Analytics 或 Analytics 平台系统(PDW)调用此名称,请使用名称 sys.dm_pdw_nodes_os_hosts。 Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。

列名称 数据类型 描述
host_address varbinary(8) 主机对象的内部内存地址。
type nvarchar(60) 宿主组件的类型。 例如,

SOSHOST_CLIENTID_SERVERSNI = SQL Server 本机接口

SOSHOST_CLIENTID_SQLOLEDB = SQL Server Native Client OLE DB 访问接口

SOSHOST_CLIENTID_MSDART = Microsoft 数据访问运行时
name nvarchar(32) 主机名称。
enqueued_tasks_count int 此主机已放置在 SQL Server 中的队列中的任务总数。
active_tasks_count int 该主机放在队列中的、正在运行的任务数。
completed_ios_count int 通过该主机发出和完成的 I/O 总数。
completed_ios_in_bytes bigint 通过该主机完成的 I/O 字节总数。
active_ios_count int 与该主机相关的、当前正在等待完成的 I/O 请求总数。
default_memory_clerk_address varbinary(8) 与该主机相关的内存分配器对象的内存地址。 有关详细信息,请参阅 sys.dm_os_memory_clerks (Transact-SQL)
pdw_node_id int 适用于:Azure Synapse Analytics、Analytics Platform System (PDW)

此分发所在节点的标识符。

权限

对于 SQL Server 和 SQL 托管实例,需要 VIEW SERVER STATE 权限。

在 SQL 数据库“基本”、“S0”和“S1”服务目标中,对于“弹性池”中的数据库,服务器管理员帐户、Microsoft Entra 管理员帐户或 ##MS_ServerStateReader## 服务器角色中的成员身份为必填项。 对于所有其他 SQL 数据库服务目标,需要数据库的 VIEW DATABASE STATE 权限或 ##MS_ServerStateReader## 服务器角色中的成员身份。

SQL Server 2022 及更高版本的权限

要求对服务器具有 VIEW SERVER PERFORMANCE STATE 权限。

注解

SQL Server 允许不属于 SQL Server 可执行文件的 OLE DB 提供程序等组件来分配内存并参与非抢先计划。 这些组件由 SQL Server 托管,跟踪这些组件分配的所有资源。 托管允许 SQL Server 更好地考虑 SQL Server 可执行文件外部组件使用的资源。

关系基数

操作 关系
sys.dm_os_hosts. default_memory_clerk_address sys.dm_os_memory_clerks. memory_clerk_address 一对一
sys.dm_os_hosts. host_address sys.dm_os_memory_clerks. host_address 一对一

示例

以下示例可确定由宿主组件调配的内存总量。

适用于:SQL Server 2012 (11.x) 及更高版本。
SELECT h.type, SUM(mc.pages_kb) AS committed_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;  

另请参阅

sys.dm_os_memory_clerks (Transact-SQL)
与 SQL Server 操作系统相关的动态管理视图 (Transact-SQL)