sys.dm_exec_query_resource_semaphores (Transact-SQL)

現在のクエリのリソース セマフォの状態に関する情報を返します。sys.dm_exec_query_resource_semaphores では一般的なクエリ実行メモリの状態が提供されるため、システムが十分なメモリにアクセスできるかどうかを判断できます。このビューは、sys.dm_os_memory_clerks から取得されるメモリ情報を補完し、サーバー メモリの状態の詳細を提供します。sys.dm_exec_query_resource_semaphores は、標準リソース セマフォに関する 1 行と、小さなクエリのリソース セマフォに関する 1 行を返します。

列名

データ型

説明

resource_semaphore_id

smallint

リソース セマフォの非一意の ID。標準リソース セマフォの場合は 0、小さなクエリのリソース セマフォの場合は 1 です。

注意注意
SQL Server 2008 より前のバージョンの SQL Server では、この ID が一意です。この変更は、クエリの実行のトラブルシューティングに影響する可能性があります。詳細については、後の「解説」を参照してください。

target_memory_kb

bigint

許可使用対象メモリ (KB 単位)。

max_target_memory_kb

bigint

最大許容対象メモリ (KB 単位)。小さなクエリのリソース セマフォの場合は NULL になります。

total_memory_kb

bigint

リソース セマフォで保持されるメモリ (KB 単位)。システムのメモリに負荷がかかっている場合や、強制的な最小メモリが頻繁に許可されている場合、この値は target_memory_kb または max_target_memory_kb の値よりも大きくなる場合があります。合計メモリは、使用可能メモリと許可されているメモリの合計です。

available_memory_kb

bigint

新しい許可で使用可能なメモリ (KB 単位)。

granted_memory_kb

bigint

許可されているメモリの合計 (KB 単位)。

used_memory_kb

bigint

許可されているメモリの中で物理的に使用される部分 (KB 単位)。

grantee_count

int

許可条件が満たされているアクティブ クエリの数。

waiter_count

int

許可条件が満たされるのを待機しているクエリの数。

timeout_error_count

bigint

サーバーが起動した後のタイムアウト エラーの合計数。小さなクエリのリソース セマフォの場合は NULL になります。

forced_grant_count

bigint

サーバーが起動した後の強制的な最小メモリ許可の合計数。小さなクエリのリソース セマフォの場合は NULL になります。

pool_id

int

このリソース セマフォが属しているリソース プールの ID。

権限

サーバーに対する VIEW SERVER STATE 権限が必要です。

説明

ORDER BY または集計を含む動的管理ビューを使用するクエリではメモリの使用量が増える場合があり、それによってトラブルシューティングが必要な問題が発生する可能性があります。

トラブルシューティングには sys.dm_exec_query_resource_semaphores を使用しますが、SQL Server の将来のバージョンを使用するアプリケーションには含めないようにしてください。

データベース管理者は、リソース ガバナ機能を使用することで、サーバー リソースを最大 20 個までのリソース プールに分散できます。SQL Server 2008 では、各プールが小規模の独立したサーバー インスタンスのように動作し、2 つのセマフォを必要とします。sys.dm_exec_query_resource_semaphores から返される行数は、最大で SQL Server 2005 で返される行数の 20 倍になることがあります。