sys.dm_os_hosts (Transact-SQL)
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
SQL Server のインスタンスに現在登録されているすべてのホストを返します。 このビューでは、ホストで使用されているリソースも返されます。
Note
これを Azure Synapse Analytics または Analytics Platform System (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 Provider SOSHOST_CLIENTID_MSDART = Microsoft Data Access の実行時 |
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 Managed Instance では、VIEW SERVER STATE
アクセス許可が必要です。
SQL Database の Basic、S0、S1 サービス対象、および Elastic Pool のデータベースの場合、サーバー管理者アカウント、Microsoft Entra 管理者アカウント、または ##MS_ServerStateReader##
サーバー ロールのメンバーシップが必要です。 他のすべての SQL Database サービス目標では、データベースに対する VIEW DATABASE STATE
アクセス許可または ##MS_ServerStateReader##
サーバー ロールのメンバーシップのいずれかが必要です。
SQL Server 2022 以降でのアクセス許可
サーバーに対する VIEW SERVER PERFORMANCE STATE アクセス許可が必要です。
解説
SQL Server を使用すると、SQL Server 実行可能ファイルの一部ではない OLE DB プロバイダーなどのコンポーネントがメモリを割り当て、非プリエンプティブ スケジューリングに参加できます。 これらのコンポーネントは SQL Server によってホストされ、これらのコンポーネントによって割り当てられたすべてのリソースが追跡されます。 ホスティングを使用すると、SQL Server 実行可能ファイルの外部のコンポーネントによって使用されるリソースをより適切に考慮できます。
リレーションシップカーディナリティ
ソース | ターゲット | 関係 |
---|---|---|
sys.dm_os_hosts. default_memory_clerk_address | sys.dm_os_memory_clerks。 memory_clerk_address | 1 対 1 |
sys.dm_os_hosts. host_address | sys.dm_os_memory_clerks。 host_address | 1 対 1 |
例
次の例では、ホストされているコンポーネントによってコミットされたメモリの合計量を決定します。
適用対象: 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)