リソース ガバナー 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 ステートメント |
説明 |
---|---|
リソース プールを作成します。 |
|
リソース プールの構成を変更します。このステートメントは、格納されている構成メタデータに変更を書き込みます。このステートメントの実行後、ALTER RESOURCE GOVERNOR ステートメントを実行してメタデータ情報をメモリ内の構成に書き込む必要があります。 |
|
リソース プールを削除します。 |
リソース ガバナーには、リソース プールの構成に使用できる 4 つのパラメーターが用意されています。パラメーターは次のとおりです。
最小 CPU 使用率と最大 CPU 使用率
最小メモリ使用率と最大メモリ使用率
リソース プールの構成に加える変更によっては、移行期間が生じる場合や、この移行期間中にアクティブな要求や待機中の要求を処理するために既知の動作を伴う場合があります。詳細については、「リソース ガバナの状態」を参照してください。
ワークロード グループ コマンド
ワークロード グループを構成するには、次の表に示すコマンドを使用します。
DDL コマンド |
説明 |
---|---|
ワークロード グループを作成し、そのワークロード グループをリソース プールに関連付けます。 |
|
ワークロード グループの構成を変更します。このステートメントは、格納されている構成メタデータに変更を書き込みます。このステートメントの実行後、ALTER RESOURCE GOVERNOR ステートメントを実行してメタデータ情報をメモリ内の構成に書き込む必要があります。 |
|
ワークロード グループを削除します。 |
リソース ガバナーには、ワークロード グループの構成に使用できる次の 6 つのパラメーターが用意されています。
1 つの要求に対する最大メモリ容量
1 つの要求に対する最大 CPU 使用率
要求に対するリソースのタイムアウト
要求の相対的な重要度
ワークロード グループの要求の最大数
ワークロード グループを配置するリソース プール
ワークロード グループの構成に加える変更によっては、変更の適用時にアクティブな要求や待機中の要求を処理するための既知の動作があります。詳細については、「リソース ガバナの状態」を参照してください。
リソース ガバナー コマンド
リソース ガバナーを構成するには、次の表に示すコマンドを使用します。
DDL コマンド |
説明 |
---|---|
ALTER コマンドで指定された構成の変更を適用し、RESOURCE GOVERNOR を有効または無効にします。また、分類子関数を登録し、統計をリセットします。 |
ALTER RESOURCE GOVERNOR ステートメントは、次の操作を実行するために使用します。
ALTER WORKLOAD GROUP または ALTER RESOURCE POOL ステートメントの発行時に指定された構成の変更の適用。
リソース ガバナーの有効化または無効化。これは構成の変更を適用するためにも使用されます。
要求の分類に使用する関数の登録。
すべてのワークロード グループとリソース プールの統計のリセット。
リソース ガバナーの構成に加える変更によっては、変更の適用時にアクティブな要求や待機中の要求を処理するための既知の動作があります。詳細については、「リソース ガバナの状態」を参照してください。
リソース ガバナー ビュー
リソース ガバナーに固有のカタログ ビューおよび動的管理ビューを以下に示します。
カタログ ビュー
次の表で、リソース ガバナーのカタログ ビューについて説明します。
名前 |
説明 |
---|---|
リソース ガバナーの格納されている状態を返します。 |
|
格納されているリソース プール構成を返します。ビューの各行によってプールの構成が決定されます。 |
|
格納されているワークロード グループの構成を返します。 |
動的管理ビュー
次の表で、リソース ガバナーの動的管理ビューについて説明します。
名前 |
説明 |
---|---|
ワークロード グループ統計と、ワークロード グループの現在のメモリ内構成を返します。 |
|
リソース プールの現在の状態、現在の構成、および統計に関する情報を返します。 |
|
リソース ガバナーの現在のメモリ内の構成状態を含む行を返します。 |
SQL Server ビュー
いくつかの SQL Server システム ビューが更新されており、リソース ガバナーに関する情報が提供されます。
動的管理ビュー
次の表で、SQL Server の動的管理ビューについて説明します。
名前 |
説明 |
---|---|
メモリ許可を取得したクエリまたは実行のためのメモリ許可をまだ要求しているクエリに関する情報を返します。メモリ許可を待機する必要のないクエリは、このビューには表示されません。リソース ガバナー用に次の列が追加されています。
|
|
現在のクエリのリソース セマフォの状態に関する情報を返します。sys.dm_exec_query_resource_semaphores では一般的なクエリ実行メモリの状態が提供されるため、システムが十分なメモリにアクセスできるかどうかを判断できます。 リソース ガバナー用に次の列が追加されています。
|
|
SQL Server での認証済みセッションごとに 1 行を返します。 リソース ガバナー用に次の列が追加されています。
|
|
SQL Server 内で実行中の各要求に関する情報を返します。 リソース ガバナー用に次の列が追加されています。
|
|
クエリ実行を高速化するため SQL Server でキャッシュされた各クエリ プランについての行を返します。 リソース ガバナー用に次の列が追加されています。
|
|
SQL Server の内部的なメモリ割り当てには、SQL Server メモリ マネージャーが使用されます。 リソース ガバナー用に次の列が追加されています。
|
|
実行中のスレッドにより検出された待機に関する情報を返します。このビューを使って、SQL Server、および特定のクエリとバッチに関するパフォーマンスの問題を診断できます。 |
SQL Server イベント クラスの参照
リソース ガバナーをサポートするため、いくつかの SQL Server イベント クラスが更新され、新しいイベント クラスが追加されています。
名前 |
説明 |
---|---|
このイベント クラスは、REQUEST_MAX_CPU_TIME_SEC に指定されている CPU しきい値を超えるクエリがリソース ガバナーによって検出されたことを示します。 |
|
このイベント クラスは、LOGON トリガーまたはリソース ガバナー分類関数の実行が開始されたことを示します。 |
|
このイベント クラスは、LOGON トリガーまたはリソース ガバナー分類関数の実行が終了したことを示します。 |