リソース ガバナの状態

SQL Server のリソース ガバナには、有効および無効の 2 つの状態があります。これらの状態は、基本操作や、構成変更時のワークロード処理に影響を及ぼします。このトピックでは、リソース ガバナの状態と、次の場合の動作について説明します。

  • リソース ガバナのインストール時の初期構成と状態

  • リソース ガバナを有効または無効にした場合

  • リソース ガバナの構成を変更した場合

初期構成

リソース ガバナをインストールすると、次のワークロード グループと、それに対応するリソース プールが作成されます。

  • 内部グループおよび内部プール

  • 既定のグループおよび既定のプール

この時点で、リソース ガバナは無効になっています。

リソース ガバナを有効または無効にした場合

リソース ガバナを有効または無効にしたときの通常の動作は次のとおりです。

リソース ガバナを有効にしたとき

リソース ガバナを有効にするには、ALTER RESOURCE GOVERNOR RECONFIGURE を実行します。リソース ガバナを有効にすると、結果は次のようになります。

  • 新しい接続に対して分類関数が実行され、それらのワークロードがワークロード グループに割り当てられます。

  • リソース ガバナ構成で指定されているリソース制限が有効になり適用されます。

  • リソース ガバナを有効にする前に存在していた要求に、リソース ガバナが無効であったときに加えた構成の変更が反映されます。

リソース ガバナを無効にしたとき

リソース ガバナを無効にするには、ALTER RESOURCE GOVERNOR DISABLE を実行します。リソース ガバナを無効にすると、結果は次のようになります。

  • 分類関数は実行されません。

  • すべての新しい接続が、既定のグループに自動的に分類されます。

  • システムによって開始される要求は、内部ワークロード グループに分類されます。

  • ワークロード グループとリソース プールの既存の設定は、すべて既定値にリセットされます。この場合、制限に達してもイベントは発生しません。

  • 通常のシステム監視は影響を受けません。

  • リソース ガバナが無効になっていてもリソース ガバナ構成を変更できますが、リソース ガバナを有効にするまでは変更が反映されません。

  • SQL Server の再起動時、リソース ガバナはその構成を読み込ません。このとき、既定および内部のグループとプールのみが存在します。

リソース ガバナの構成を変更した場合

リソース ガバナの構成を変更しても、すぐには反映されません。構成の変更は、次の 2 つの手順で行います。

  1. 適切な ALTER ステートメントを実行して、リソース プールまたはワークロード グループの設定を変更します。これにより、構成メタデータが更新されます。

  2. ALTER RESOURCE GOVERNOR ステートメントを実行します。これにより、更新されたメタデータがメモリ内の構成にコピーされます。一般的な構成変更がリソース ガバナ セッションに反映および表示されるタイミングについて、次の表で説明します。

コンポーネント

説明

ユーザー定義の分類

変更は、新しいセッション接続に対して有効になります。

リソース プール

実行時間の長いセッションの場合は変更の影響を受ける可能性が高く、実行時間の短いセッションの場合は変更が反映される前に終了する可能性があります。

ワークロード グループ

現在のセッションは変更の影響を受けませんが、新しい接続は影響を受けます。

リソース ガバナの DDL ステートメント実行時の一般的なセッション動作に加えて、リソース プールやワークロード グループの個々の設定には予測可能な結果が伴いますが、設定変更の処理時には特定の影響が生じます。

リソース プールの設定

リソース プールを構成するための設定は 4 つあります。これらの設定は次のとおりです。

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

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

リソース プールの構成に変更を適用した場合には移行期間が生じ、この期間中にアクティブな要求や待機中の要求が処理されます。リソース プールの構成に変更を適用する際のセッション要件とセッション動作について、次の表で説明します。

設定

操作

説明

最小使用率

増減

  • 増 : 他のリソース プールはすべて、それぞれ有効な最大値設定まで縮小されます。すべての最小値設定を合計して 100% であれば、他のリソース プールで一部の最小値設定を小さくしてから、現在のリソース プールの最小値設定を大きくする必要があります。

  • 減 : 有効な最大値と最小値が同じ場合、割り当てられていないメモリがリソース プールから召集され、キューに置かれている要求が失敗することがあります。アクティブな要求が完了するまで、割り当て済みメモリはリソース プールから召集されません。

最大使用率

増減

  • 増 : この設定変更を行っても問題は生じません。

  • 減 : 新しい値が実際の使用率よりも大きい場合は問題ありません。新しい値が実際の使用率よりも小さい場合、移行期間が生じます。変更は既存の要求が完了してから適用され、新しい要求は失敗する可能性があります。

ワークロード グループの設定

ワークロード グループを構成するための設定は 7 つあります。これらの設定は次のとおりです。

  • 1 つの要求に対する最大メモリ割り当て

  • 1 つの要求に対する最大 CPU 時間

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

  • 要求の相対的な重要度の設定

  • ワークグループの要求数の制限

  • 並列処理の最大限度

  • 指定したリソース プール

設定

操作

説明

最大メモリ

増減

  • 増 : アクティブなクエリは影響を受けず、可能な場合はより多くのメモリを取得できます。

  • 減 : アクティブな要求は影響を受けませんが、新しい要求で使用するメモリは少なくなります。

最大 CPU 時間

増減

  • 増 : アクティブなクエリは影響を受けません。

  • 減 : 制限を超えているクエリに対してイベントが発生しますが、クエリは引き続き実行されます。

リソースのタイムアウト

増減

既にキューで待機しているクエリは影響を受けません。新しいクエリには、新しい設定が使用されます。

重要度

増減

ワークロード グループ内のクエリに対する CPU 配分にのみ影響します。

要求の最大数

増減

  • 増 : 既存のクエリは影響を受けません。

  • 減 : 既存のクエリは影響を受けませんが、新しいクエリは待機し、タイムアウトする可能性もあります。

並列処理の最大限度

増減

新しいクエリのコンパイルと実行にのみ影響します。

指定したリソース プール

変更

アクティブな要求には、既存のリソース プールとその設定が引き続き使用されます。新しい要求には、新しいプールとその設定が使用されます。

リソース ガバナの設定

リソース ガバナの構成や現在の状態を変更できるほか、ALTER RESOURCE GOVERNOR RECONFIGURE ステートメントを使用して分類関数を作成または変更することもできます。

新しい分類関数を登録する場合、新しい接続を別のワークロード グループにルーティングするための規則を変更します。既に分類済みのクエリは、この変更による影響を受けません。影響を受けるのは、新しいクエリのみです。