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 倍になることがあります。