CREATE WORKLOAD CLASSIFIER (Transact-SQL)
ワークロード管理で使用する分類子オブジェクトを作成します。 分類子では、受信要求が分類子ステートメントの定義に指定されたパラメーターに基づいて、ワークロード グループに割り当てられます。 分類子は要求が送信されるごとに評価されます。 要求が分類子と一致しない場合は、既定のワークロード グループに割り当てられます。 既定のワークロード グループはリソース クラスです smallrc
。
Note
マネージド ID (MI) 動作の分類は、Azure Synapse ワークスペースの専用 SQL プールと、スタンドアロン専用 SQL プール (旧称 SQL DW) で異なります。 スタンドアロン専用 SQL プール MI を使用すると、割り当てられた ID が保持されますが、Azure Synapse ワークスペースでは、MI が dbo ロールに追加されます。 これは変更できません。 既定では、dbo ロールは次にsmallrc
分類されます。 dbo ロールの分類子を作成すると、次以外smallrc
のワークロード グループに要求を割り当てることができます。 dbo だけが分類に対して汎用的で、より広範な影響を与える場合は、dbo ロールの分類と組み合わせてラベル、セッション、または時間ベースの分類を使用することを検討してください。
構文
CREATE WORKLOAD CLASSIFIER classifier_name
WITH
( WORKLOAD_GROUP = 'name'
, MEMBERNAME = 'security_account'
[ [ , ] WLM_LABEL = 'label' ]
[ [ , ] WLM_CONTEXT = 'context' ]
[ [ , ] START_TIME = 'HH:MM' ]
[ [ , ] END_TIME = 'HH:MM' ]
[ [ , ] IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH } ] )
[ ; ]
Note
この構文は、Azure Synapse Analytics のサーバーレス SQL プールでサポートされていません。
引数
classifier_name
ワークロード分類子を識別する名前を指定します。 classifier_nameは sysname です。 このパラメーターの長さは最大 128 文字で、インスタンス内で一意である必要があります。
WORKLOAD_GROUP = 'name'
分類子の規則によって条件が満たされると、name によって要求がワークロード グループにマップされます。 name は sysname です。 このパラメーターの長さは最大 128 文字で、分類子の作成時には有効なワークロード グループ名である必要があります。
使用可能なワークロード グループは、sys.workload_management_workload_groups カタログ ビューで見つけることができます。
ME MB (メガバイト)ERNAME = 'security_account'
分類に使用するセキュリティ アカウント。 security_accountは sysname で、既定値はありません。 security_accountには、データベース ユーザー、データベース ロール、Microsoft Entra ログイン、または Microsoft Entra グループを指定できます。
Note
システムに user_name()
接続するときに、この関数を使用して、分類プロセスが要求の MEMBERNAME
分類に使用することを確認します。 関数を MEMBERNAME
使用 user_name()
して検証すると、Microsoft Entra ID またはサービス プリンシパルの分類に関する問題のトラブルシューティングに役立ちます。 返された場合user_name()
はdbo
、dbo をMEMBERNAME
使用して要求を分類できます。 dbo ロールのすべてのメンバーが分類されます。 追加の分類パラメーター (WLM_LABEL
WLM_CONTEXT
dbo ロールにマッピングされた複数の Microsoft Entra アカウントからの要求を具体的に分類する場合など) を使用することもできます。
WLM_LABEL
要求を分類できるラベル値を指定します。 Label は nvarchar(255) 型 の省略可能なパラメーターです。 要求の OPTION (LABEL) を使用して、分類子の構成を一致させます。
次に例を示します。
CREATE WORKLOAD CLASSIFIER wcELTLoads
WITH (
WORKLOAD_GROUP = 'wgDataLoad',
MEMBERNAME = 'ELTRole',
WLM_LABEL = 'dimension_loads'
);
SELECT COUNT(*) FROM DimCustomer
OPTION (LABEL = 'dimension_loads');
WLM_CONTEXT
要求を分類できるセッション コンテキスト値を指定します。 WLM_CONTEXT
は nvarchar(255) 型 の省略可能なパラメーターです。 セッション コンテキストを設定する要求を送信する前に、変数名が等しいwlm_context
sys.sp_set_session_contextを使用します。
次に例を示します。
CREATE WORKLOAD CLASSIFIER wcDataLoad
WITH (
WORKLOAD_GROUP = 'wgDataLoad',
MEMBERNAME = 'ELTRole',
WLM_CONTEXT = 'dim_load'
);
--set session context
EXEC sys.sp_set_session_context @key = 'wlm_context', @value = 'dim_load';
--run multiple statements using the wlm_context setting
SELECT COUNT(*) FROM stg.daily_customer_load;
SELECT COUNT(*) FROM stg.daily_sales_load;
--turn off the wlm_context session setting
EXEC sys.sp_set_session_context @key = 'wlm_context', @value = NULL;
START_TIME と END_TIME
要求を分類できる開始時刻と終了時刻を指定します。 END_TIME
HH:mm
どちらも START_TIME
UTC タイム ゾーンの形式です。 START_TIME
一 END_TIME
緒に指定する必要があります。
次に例を示します。
CREATE WORKLOAD CLASSIFIER wcELTLoads
WITH (
WORKLOAD_GROUP = 'wgDataLoads',
MEMBERNAME = 'ELTRole',
START_TIME = '22:00',
END_TIME = '02:00'
);
IMPORTANCE = { LOW | BELOW_NORMAL | NORMAL | ABOVE_NORMAL | HIGH }
要求の相対的な重要度を指定します。 IMPORTANCE
には、次のいずれかを選択します。
LOW
BELOW_NORMAL
NORMAL
(既定値)ABOVE_NORMAL
HIGH
指定しない場合 IMPORTANCE
は、ワークロード グループの重要度設定が使用されます。 既定のワークロード グループの重要度は .NORMAL
重要度は要求がスケジュールされる順番に影響します。それによって、リソースおよびロックへの最初のアクセスが指定されます。
解説
ユーザー定義分類子の最大数は 100
. この制限を超える追加の構成はサポートされていません。 複数のワークロードまたはユーザー間で 1 つの設定を効率的に適用するために、分類子を共通のカテゴリにグループ化することをお勧めします。
分類パラメーターの重み付け
要求は、複数の分類子と照合できます。 分類子パラメーターには重み付けがあります。 ワークロード グループと重要度の割り当てには、重み付けが高く、一致する分類子が使用されます。 重み付けは次のようになります。
分類子パラメーター | 体重 |
---|---|
USER |
64 |
ROLE |
32 |
WLM_LABEL |
16 |
WLM_CONTEXT |
8 |
START_TIME /END_TIME |
4 |
次の分類子構成について考えてみます。
CREATE WORKLOAD CLASSIFIER classifierA
WITH (
WORKLOAD_GROUP = 'wgDashboards',
MEMBERNAME = 'userloginA',
IMPORTANCE = HIGH,
WLM_LABEL = 'salereport'
);
CREATE WORKLOAD CLASSIFIER classifierB
WITH (
WORKLOAD_GROUP = 'wgUserQueries',
MEMBERNAME = 'userloginA',
IMPORTANCE = LOW,
START_TIME = '18:00',
END_TIME = '07:00'
);
ユーザー userloginA
は両方の分類子で構成されています。 午後 6 時から午前 7 時 (UTC) の間のラベルをsalesreport
持つクエリを実行するとuserloginA
、要求は重要度のwgDashboards
高いワークロード グループにHIGH
分類されます。 要求をオフ時間レポートの重要度で分類wgUserQueries
することが期待される場合がありますが、重み付けWLM_LABEL
は START_TIME
/END_TIME
.LOW
重み付け classifierA
は 80
(64
ユーザーの場合、プラス 16
for WLM_LABEL
) です。 重み付け classifierB
は 68
(64
ユーザーの場合、 4
for START_TIME
/END_TIME
) です。 この例では、に追加WLM_LABEL
classifierB
できます。
詳細については、ワークロードの重み付けを参照してください。
アクセス許可
CONTROL DATABASE
権限が必要です。
例
次の例は、wgcELTRole
という名前のワークロード分類子を作成する方法を示します。 ワークロード グループ、ユーザーELTRole
をstaticrc20
使用し、IMPORTANCE を にABOVE_NORMAL
設定します。
CREATE WORKLOAD CLASSIFIER wgcELTRole
WITH (
WORKLOAD_GROUP = 'staticrc20',
MEMBERNAME = 'ELTRole',
IMPORTANCE = ABOVE_NORMAL
);
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示