リソース ガバナー DDL とシステム ビュー

リソース ガバナーの DDL コマンド、カタログ ビュー、および動的管理ビューを使用すると、リソース ガバナーのすべての機能を利用できます。リソース ガバナー固有の新しいビューに加えて、既存のシステム ビューにもリソース ガバナーに関する情報が含まれるように変更されています。このトピックでは、次のステートメントとビューの概要を説明します。

  • ワークロード グループ、リソース プール、およびリソース ガバナーのコマンドを含む DDL コマンド

  • カタログ ビューおよび動的管理ビューを含むリソース ガバナー システム ビュー

  • リソース ガバナーをサポートするために更新された SQL Server システム ビュー

  • リソース ガバナーをサポートするための SQL Server イベント クラスの更新と新しいイベント クラス

DDL ステートメント

リソース ガバナーには、7 つの DDL コマンドが用意されています。これらのコマンドを使用すると、リソース ガバナー セッションのすべての機能を構成できます。ワークロード グループとリソース プール用に、CREATE、ALTER、および DROP の各コマンドがあります。構成の変更を適用する ALTER RESOURCE GOVERNOR RECONFIGURE ステートメントもあります。

リソース ガバナーの DDL コマンドに関する主な注意事項を以下に示します。

  • CREATE、ALTER、および DROP の各ステートメントは、格納されているメタデータを操作します。これらはトランザクション処理です。ただし、これらのステートメントが完了しても変更は有効になりません。変更を適用するには、ALTER RESOURCE GOVERNOR RECONFIGURE ステートメントを実行する必要があります。

  • 複数のユーザーが同じ構成を同時に変更できないように、上記のステートメントはトランザクションの一部とすることができます。これは、ステートメントと共に BEGIN TRANSACTION と COMMIT TRANSACTION を使用することで行います。トランザクションで保持されているロックはすべて dm_tran_locks で表示でき、必要に応じてそのトランザクションを停止することもできます。

    注意

    必須ではありませんが、リソース ガバナーの DDL ステートメントを使用する場合は、トランザクション構文を使用することを強くお勧めします。ただし、ALTER RESOURCE GOVERNOR DISABLE、ALTER RESOURCE GOVERNOR RECONFIGURE、および ALTER RESOURCE GOVERNOR RESET STATISTICS は、ユーザー トランザクションに含めることはできません。

  • ALTER...RECONFIGURE ステートメントは、メタデータをメモリに読み込みますが、失敗することもあります。このステートメントはロールバックできません。このステートメントが失敗した場合、メタデータへの変更はメモリにコピーされません。ステートメントが成功した場合は、変更が有効になります。ALTER...RECONFIGURE はトランザクション処理ではなく、変更はロールバックできません。

リソース プール コマンド

リソース プールを構成するには、次の表に示すコマンドを使用します。

DDL ステートメント

説明

CREATE RESOURCE POOL

リソース プールを作成します。

ALTER RESOURCE POOL

リソース プールの構成を変更します。このステートメントは、格納されている構成メタデータに変更を書き込みます。このステートメントの実行後、ALTER RESOURCE GOVERNOR ステートメントを実行してメタデータ情報をメモリ内の構成に書き込む必要があります。

DROP RESOURCE POOL

リソース プールを削除します。

リソース ガバナーには、リソース プールの構成に使用できる 4 つのパラメーターが用意されています。パラメーターは次のとおりです。

  • 最小 CPU 使用率と最大 CPU 使用率

  • 最小メモリ使用率と最大メモリ使用率

リソース プールの構成に加える変更によっては、移行期間が生じる場合や、この移行期間中にアクティブな要求や待機中の要求を処理するために既知の動作を伴う場合があります。詳細については、「リソース ガバナの状態」を参照してください。

ワークロード グループ コマンド

ワークロード グループを構成するには、次の表に示すコマンドを使用します。

DDL コマンド

説明

CREATE WORKLOAD GROUP

ワークロード グループを作成し、そのワークロード グループをリソース プールに関連付けます。

ALTER WORKLOAD GROUP

ワークロード グループの構成を変更します。このステートメントは、格納されている構成メタデータに変更を書き込みます。このステートメントの実行後、ALTER RESOURCE GOVERNOR ステートメントを実行してメタデータ情報をメモリ内の構成に書き込む必要があります。

DROP WORKLOAD GROUP

ワークロード グループを削除します。

リソース ガバナーには、ワークロード グループの構成に使用できる次の 6 つのパラメーターが用意されています。

  • 1 つの要求に対する最大メモリ容量

  • 1 つの要求に対する最大 CPU 使用率

  • 要求に対するリソースのタイムアウト

  • 要求の相対的な重要度

  • ワークロード グループの要求の最大数

  • ワークロード グループを配置するリソース プール

ワークロード グループの構成に加える変更によっては、変更の適用時にアクティブな要求や待機中の要求を処理するための既知の動作があります。詳細については、「リソース ガバナの状態」を参照してください。

リソース ガバナー コマンド

リソース ガバナーを構成するには、次の表に示すコマンドを使用します。

DDL コマンド

説明

ALTER RESOURCE GOVERNOR

ALTER コマンドで指定された構成の変更を適用し、RESOURCE GOVERNOR を有効または無効にします。また、分類子関数を登録し、統計をリセットします。

ALTER RESOURCE GOVERNOR ステートメントは、次の操作を実行するために使用します。

  • ALTER WORKLOAD GROUP または ALTER RESOURCE POOL ステートメントの発行時に指定された構成の変更の適用。

  • リソース ガバナーの有効化または無効化。これは構成の変更を適用するためにも使用されます。

  • 要求の分類に使用する関数の登録。

  • すべてのワークロード グループとリソース プールの統計のリセット。

リソース ガバナーの構成に加える変更によっては、変更の適用時にアクティブな要求や待機中の要求を処理するための既知の動作があります。詳細については、「リソース ガバナの状態」を参照してください。

リソース ガバナー ビュー

リソース ガバナーに固有のカタログ ビューおよび動的管理ビューを以下に示します。

カタログ ビュー

次の表で、リソース ガバナーのカタログ ビューについて説明します。

名前

説明

sys.resource_governor_configuration

リソース ガバナーの格納されている状態を返します。

sys.resource_governor_resource_pools

格納されているリソース プール構成を返します。ビューの各行によってプールの構成が決定されます。

sys.resource_governor_workload_groups

格納されているワークロード グループの構成を返します。

動的管理ビュー

次の表で、リソース ガバナーの動的管理ビューについて説明します。

名前

説明

sys.dm_resource_governor_workload_groups

ワークロード グループ統計と、ワークロード グループの現在のメモリ内構成を返します。

sys.dm_resource_governor_resource_pools

リソース プールの現在の状態、現在の構成、および統計に関する情報を返します。

sys.dm_resource_governor_configuration

リソース ガバナーの現在のメモリ内の構成状態を含む行を返します。

SQL Server ビュー

いくつかの SQL Server システム ビューが更新されており、リソース ガバナーに関する情報が提供されます。

動的管理ビュー

次の表で、SQL Server の動的管理ビューについて説明します。

名前

説明

sys.dm_exec_query_memory_grants

メモリ許可を取得したクエリまたは実行のためのメモリ許可をまだ要求しているクエリに関する情報を返します。メモリ許可を待機する必要のないクエリは、このビューには表示されません。リソース ガバナー用に次の列が追加されています。

  • group_id

  • pool_id

  • is_small

  • ideal_memory_kb

sys.dm_exec_query_resource_semaphores

現在のクエリのリソース セマフォの状態に関する情報を返します。sys.dm_exec_query_resource_semaphores では一般的なクエリ実行メモリの状態が提供されるため、システムが十分なメモリにアクセスできるかどうかを判断できます。

リソース ガバナー用に次の列が追加されています。

  • pool_id

sys.dm_exec_sessions

SQL Server での認証済みセッションごとに 1 行を返します。

リソース ガバナー用に次の列が追加されています。

  • group_id

sys.dm_exec_requests

SQL Server 内で実行中の各要求に関する情報を返します。

リソース ガバナー用に次の列が追加されています。

  • group_id

sys.dm_exec_cached_plans

クエリ実行を高速化するため SQL Server でキャッシュされた各クエリ プランについての行を返します。

リソース ガバナー用に次の列が追加されています。

  • pool_id

sys.dm_os_memory_brokers

SQL Server の内部的なメモリ割り当てには、SQL Server メモリ マネージャーが使用されます。

リソース ガバナー用に次の列が追加されています。

  • pool_id

  • allocations_kb_per_sec

  • predicated_allocations_kb

  • overall_limit_kb

sys.dm_os_wait_stats

実行中のスレッドにより検出された待機に関する情報を返します。このビューを使って、SQL Server、および特定のクエリとバッチに関するパフォーマンスの問題を診断できます。

SQL Server イベント クラスの参照

リソース ガバナーをサポートするため、いくつかの SQL Server イベント クラスが更新され、新しいイベント クラスが追加されています。

名前

説明

CPU Threshold Exceeded イベント クラス

このイベント クラスは、REQUEST_MAX_CPU_TIME_SEC に指定されている CPU しきい値を超えるクエリがリソース ガバナーによって検出されたことを示します。

PreConnect:Starting イベント クラス

このイベント クラスは、LOGON トリガーまたはリソース ガバナー分類関数の実行が開始されたことを示します。

PreConnect:Completed イベント クラス

このイベント クラスは、LOGON トリガーまたはリソース ガバナー分類関数の実行が終了したことを示します。