次の方法で共有


リソース ガバナー分類子関数

SQL Server リソース ガバナー分類プロセスでは、セッションの特性に基づいて、受信セッションがワークロード グループに割り当てられます。 分類ロジックを調整するには、分類子関数と呼ばれるユーザー定義関数を記述します。

分類

Resource Governor は、受信セッションの分類をサポートします。 分類は、関数に含まれる一連のユーザー記述条件に基づいています。 関数ロジックの結果により、Resource Governor はセッションを既存のワークロード グループに分類できます。

内部ワークロード グループには、内部でのみ使用される要求が設定されます。 これらの要求のルーティングに使用される条件を変更することはできません。また、要求を内部ワークロード グループに分類することもできません。

受信セッションをワークロード グループに割り当てるために使用されるロジックを含むスカラー関数を記述できます。 この関数を使用する前に、次のアクションを完了する必要があります。

  • ALTER RESOURCE GOVERNOR ステートメントを使用して関数を作成して登録します。 詳細については、「ALTER RESOURCE GOVERNOR (Transact-SQL)」を参照してください。

  • ALTER RESOURCE GOVERNOR ステートメントと RECONFIGURE パラメーターを使用して、リソース ガバナー構成を更新します。

関数を作成して構成の変更を適用すると、Resource Governor 分類子は、関数によって返されたワークロード グループ名を使用して、適切なワークロード グループに新しい要求を送信します。

重要

ログインの指定されたタイムアウト内に分類関数が完了しない場合、クライアント セッションがタイムアウトすることがあります。 ログイン タイムアウトはクライアント プロパティであるため、サーバーはタイムアウトを認識しません。実行時間の長い分類子関数は、サーバーに孤立した接続を長時間残すことができます。 接続タイムアウトの前に実行を完了する分類子関数を作成することが重要です。

ユーザー定義関数には、次の特性と動作があります。

  • 接続プールが有効になっている場合でも、新しいセッションごとにユーザー定義関数が評価されます。

  • ユーザー定義関数は、セッションのワークロード グループ コンテキストを提供します。 グループ メンバーシップが決定されると、セッションはセッションの有効期間中ワークロード グループにバインドされます。

  • ユーザー定義関数が NULL、既定値、または存在しないグループの名前を返す場合、セッションには既定のワークロード グループ コンテキストが指定されます。 また、何らかの理由で関数が失敗した場合、セッションには既定のコンテキストも指定されます。

  • この関数は、サーバー スコープ (マスター データベース) で定義する必要があります。

  • 分類子のユーザー定義関数の指定は、ALTER RESOURCE GOVERNOR RECONFIGURE の実行後にのみ有効になります。

  • 一度に 1 つの分類子として指定できるユーザー定義関数は 1 つだけです。

  • 分類子の状態が削除されない限り、分類子ユーザー定義関数を削除または変更することはできません。

  • 分類子ユーザー定義関数がない場合、すべてのセッションが既定のグループに分類されます。

  • 分類子関数によって返されるワークロード グループは、スキーマ バインド制限の範囲外です。 たとえば、テーブルを削除することはできませんが、ワークロード グループを削除することはできます。

重要

サーバーで専用管理者接続 (DAC) を有効にすることをお勧めします。 DAC はリソース ガバナーの分類の対象ではなく、分類子関数の監視とトラブルシューティングに使用できます。 詳細については、「 データベース管理者の診断接続」を参照してください。 DAC をトラブルシューティングに使用できない場合、もう 1 つのオプションは、シングル ユーザー モードでシステムを再起動することです。 シングル ユーザー モードは分類の対象ではありませんが、実行中に Resource Governor の分類を診断することはできません。

分類プロセス

リソース ガバナーのコンテキストでは、セッションのログイン プロセスは次の手順で構成されます。

  1. ログイン認証

  2. LOGON トリガーの実行

  3. 分類

分類が開始されると、Resource Governor は分類子関数を実行し、関数によって返された値を使用して適切なワークロード グループに要求を送信します。

分類子関数と LOGON トリガーの実行に関する情報は、 sys.dm_exec_sessions および sys.dm_exec_requestsで公開されます。

分類関数のタスク

タスクの説明 トピック
分類子ユーザー定義関数を作成してテストする方法について説明します。 分類子 User-Defined 関数を作成してテストする

こちらもご覧ください

リソース ガバナー
リソース ガバナーの有効化
リソース ガバナー リソース プール
リソース ガバナー ワークロード グループ
テンプレートを使用してリソース ガバナーを構成する
リソース ガバナー プロパティの表示