sys.dm_os_hosts
返回当前在 SQL Server 实例中注册的所有主机。该视图还返回这些主机使用的资源。
列名 |
数据类型 |
说明 |
---|---|---|
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) |
与该主机相关的内存 clerk 对象的内存地址。有关详细信息,请参阅 sys.dm_os_memory_clerks。 |
权限
需要对服务器拥有 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 |
一对一 |
示例
以下示例可确定由宿主组件调配的内存总量。
SELECT h.type, SUM(single_pages_kb + multi_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;