sys.dm_os_hosts (Transact-SQL)
返回当前在 SQL Server 实例中注册的所有主机。 该视图还返回这些主机使用的资源。
列名 |
数据类型 |
说明 |
---|---|---|
host_address |
varbinary(8) |
主机对象的内部内存地址。 |
类型 |
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)。 |
权限
要求对服务器具有 VIEW SERVER 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 至 SQL Server 2012。 |
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;