CREATE WORK ACTION SET ステートメント
CREATE WORK ACTION SET ステートメントは、作業アクション・セットおよびその中の作業アクションを定義します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むか、あるいは対話式に発行することができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。
許可
このステートメントの許可 ID が持つ特権には、WLMADM または DBADM 権限が含まれている 必要があります。
構文
Notes:
- 1 Only one work action of the same threshold type can be applied to a single work class at a time.
- 2 This feature is available in Db2 Version 11.5 Mod Pack 2 and later versions.
- 3 The DETAILS keyword is the minimum to be specified, followed by the option separated by a comma.
- 4 This clause does not apply to thresholds.
説明
- ワーク・アクション・セット名
- 作業アクション・セットの名前を指定します。 これは、1 部構成の名前です。 これは、SQL ID です (通常 ID または区切り ID)。 work-action-set-name は、現行のサーバー上に既に存在する作業アクション・セットを識別するものであってはなりません (SQLSTATE 42710)。 名前を文字 SYS で始めることはできません (SQLSTATE 42939)。
- FOR
- この作業アクション・セットのアクションが適用されるデータベース・マネージャー・オブジェクトを指定します。 データベース・マネージャー・オブジェクトにはそれぞれ作業アクション・セットを 1 つだけ定義できます (SQLSTATE 5U017)。
- データベース
- この作業アクション・セットのアクションはデータベースに適用されます。 DATABASE が指定された場合、MAP ACTIVITY アクションは指定できません (SQLSTATE 5U034)。
- サービス・クラス service-superclass-name
- この作業アクション・セットのアクションは service-superclass-name に適用されます。 SERVICE CLASS が指定された場合、しきい値アクションは指定できません (SQLSTATE 5U034)。 service-superclass-name は、現行のサーバーに存在するものでなければなりません (SQLSTATE 42704)。 service-superclass-name はサービス・サブクラスであってはならず、以下のどのクラスになることもできません (SQLSTATE 5U032)。
- システム・サービス・クラス (SYSDEFAULTSYSTEMCLASS)
- 保守サービス・クラス (SYSDEFAULTMAINTENANCECLASS)
- デフォルト・ユーザー・サービス・クラス (SYSDEFAULTUSERCLASS)
- WORKLOAD ワークロード名
- この作業アクション・セットのアクションは、ワークロード workload-name に適用されます。 WORKLOAD が指定された場合、MAP ACTIVITY アクションは指定できません (SQLSTATE 5U034)。 現行サーバーに workload-name が存在しなければなりません (SQLSTATE 42704)。 workload-name を SYSDEFAULTADMWORKLOAD にすることはできません (SQLSTATE 5U032)。
- USING WORK CLASS SET ワーク・クラス・セット名
- アクションの実行対象データベース・アクティビティーを分類する作業クラスを含む作業クラス・セットを指定します。 work-class-set-name は、現行のサーバーに存在するものでなければなりません (SQLSTATE 42704)。 ワーク・アクション定義
- 作業アクションの定義を指定します。
- WORK ACTION ワーク・アクション名
- 作業アクションの名前を指定します。 work-action-name は、現行のサーバーのこの作業アクション・セットの下に既存の作業アクションを識別するものであってはなりません (SQLSTATE 42710)。 work-action-name の先頭に SYS を使用することはできません (SQLSTATE 42939)。
- ON WORK CLASS ワーク・クラス名
- この作業アクションが適用されるデータベース・アクティビティーを識別する作業クラスを指定します。 work-class-name は、現行のサーバーの work-class-set-name に存在するものでなければなりません (SQLSTATE 42704)。
- MAP ACTIVITY
- アクティビティーのマッピングの作業アクションを指定します。 このアクションは、この作業アクション・セットが定義されているオブジェクトがサービス・スーパークラスである場合にのみ指定できます (SQLSTATE 5U034)。
- WITH NESTED または WITHOUT NESTED
- このアクティビティーの下にネストされているアクティビティーをサービス・サブクラスにマップするかどうかを指定します。 デフォルトは WITH NESTED です。
- WITH NESTED
- 作業クラスに分類されるすべてのデータベース・アクティビティーのうちネスティング・レベルがゼロのもの、およびこのアクティビティーの下でネストされているすべてのデータベース・アクティビティーは、サービス・サブクラスにマップされます。 つまり、ネスティング・レベルがゼロより大きいアクティビティーは、ネスティング・レベルがゼロのアクティビティーと同じサービス・クラスの下で実行されます。
- WITHOUT NESTED
- 作業クラスの下に分類されているデータベース・アクティビティーのうち、ネスティング・レベルがゼロのものだけがサービス・サブクラスにマップされます。 このアクティビティーの下にネストされているデータベース・アクティビティーは、そのアクティビティー・タイプに従って処理されます。
- TO サービス・サブクラス名
- アクティビティーのマップ先となるサービス・サブクラスを指定します。 service-subclass-name は、現行サーバーの service-superclass-name に既に存在するものでなければなりません (SQLSTATE 42704)。 service-subclass-name にデフォルトのサービス・サブクラス SYSDEFAULTSUBCLASS を指定することはできません (SQLSTATE 5U018)。
- WHEN
- この作業アクションが定義されている作業クラスに関連するデータベース・アクティビティーに適用するしきい値を指定します。 しきい値は、この作業アクション・セットが定義されているデータベース・マネージャー・オブジェクトがデータベースまたはワークロードである場合にのみ指定できます (SQLSTATE 5U034)。 これらのしきい値は、データベース・マネージャーによって開始された内部のデータベース・アクティビティー、または管理 SQL ルーチンによって生成されたデータベース・アクティビティーには適用されません。
- threshold-types-clause
- 有効なしきい値タイプについては、
CREATE THRESHOLD
ステートメントを参照してください。 threshold-exceeded-actions - しきい値を超過した場合の有効なアクションについては、
CREATE THRESHOLD
ステートメントを参照してください。 - PREVENT EXECUTION
- この作業アクションが定義されている作業クラスに関連するデータベース・アクティビティーの実行を許可しないことを指定します (SQLSTATE 5U033)。
- COUNT ACTIVITY
- この作業アクションが定義されている作業クラスと関連付けられたデータベース・アクティビティーすべてを実行し、実行されるたびに作業クラスのカウンターを増分することを指定します。
- COLLECT ACTIVITY DATA
- この作業アクションが定義されている作業クラスに関連する各アクティビティーについてのデータを、アクティビティー完了時に、任意のアクティブなアクティビティー・イベント・モニターに送信するように指定します。 デフォルトは COLLECT ACTIVITY DATA WITHOUT DETAILS です。
- collect-activity-data-clause
- ON COORDINATOR MEMBER
- アクティビティーのコーディネーター・ メンバー でのみアクティビティー・データを収集することを指定します。
- ON ALL MEMBERS
- アクティビティーが処理されるすべての メンバー でアクティビティー・データを収集することを指定します。 リモートの メンバーでは、アクティビティーがこれらの メンバーに到着および到着すると、アクティビティーのレコードが複数回キャプチャーされることがあります。 AND VALUES 節が指定されている場合、コーディネーターの メンバー についてのみアクティビティー入力値が収集されます。
- WITHOUT DETAILS
- このサービス・クラスで実行される各アクティビティーに関するデータを、アクティビティーの実行完了時に任意のアクティブなアクティビティー・イベント・モニターに送信するように指定します。 ステートメント、コンパイル環境、 およびセクション環境のデータに関する詳細は送信されません。
- WITH
- DETAILS
- 任意のアクティブなアクティビティーにステートメントおよびコンパイル環境のデータが含まれる場合、 それを該当するアクティビティーのイベント・モニターへ送信すること を指定します。 セクションの環境データは送信されません。
- SECTION
- ステートメント、コンパイル環境、セクション環境データ、セクション actuals を、それらが含まれるアクティビティー用のアクティブなアクティビティー・イベント・モニターに送信することを指定します。 DETAILS は SECTION が指定されている場合、
指定する必要があります。 セクション actuals は、アクティビティー・データが収集されるすべての メンバー で収集されます。
- INCLUDE ACTUALS BASE
- セクション actuals を、アクティビティー・データが収集されるすべてのパーティションでも収集することを示します。 セクション actuals を収集するには、INCLUDE ACTUALS 節を指定するか、section_actuals データベース構成パラメーターを設定する必要があります。
セクション actuals を収集するための有効な設定は、INCLUDE ACTUALS 節、section_actuals データベース構成パラメーター、および WLM_SET_CONN_ENV ルーチンで指定される <collectsectionactuals> 設定の組み合わせです。 例えば、INCLUDE ACTUALS BASE が指定されているが、section_actuals データベース構成パラメーター値が NONE であり、<collectsectionactuals> が NONE に設定されている場合、セクション actuals の収集の有効な設定は BASE になります。
BASE は、アクティビティーの実行時に、以下を使用可能化および収集する必要があることを指定します。- 基本演算子のカーディナリティー・カウント
- 参照される各オブジェクトの統計 (DML ステートメントのみ)
- AND VALUES
- 任意のアクティブなアクティビティーに入力データ値が含まれている場合、 それを該当するアクティビティーのイベント・モニターに送信することを指定します。 このデータには、REOPT ALWAYS BIND オプションを使用してコンパイルされた SQL ステートメントは含まれません。
- COLLECT AGGREGATE ACTIVITY DATA
- この作業アクションが定義されている作業クラスに関連付けられているアクティビティーについて集約アクティビティー・データをキャプチャーし、統計イベント・モニター (アクティブな場合) に送信することを指定します。 この情報は、wlm_collect_int データベース構成パラメーターで指定された間隔で定期的に収集されます。 デフォルトは COLLECT AGGREGATE ACTIVITY DATA BASE です。 この節は、データベースに適用される作業アクション・セットで定義されている作業アクションには指定できません。
- BASE
- この作業アクションが定義されている作業クラスに関連付けられているアクティビティーについて、基本的な集約アクティビティー・データをキャプチャーし、統計イベント・モニター (アクティブな場合) に送信することを指定します。 基礎集約アクティビティー・データには以下のものが含まれます。
- アクティビティー・コストの最高水準点の見積もり
- 戻り行数の最高水準点
- TEMPORARY 表スペース使用量の最高水準点。 この最高水準点が関係するのは、SQLTEMPSPACE しきい値が適用されているアクティビティーのみです。
- アクティビティー存続時間のヒストグラム
- アクティビティー・キュー時間のヒストグラム
- アクティビティー実行時間のヒストグラム
- EXTENDED
- このワーク・アクションが定義されているワーク・クラスに関連付けられたアクティビティーについて、すべての集約アクティビティー・データをキャプチャーし、統計イベント・モニター (アクティブになっている場合) に送信することを指定します。 これには、すべての基礎集約アクティビティー・データに加えて、以下のものが含まれます。
- アクティビティー・データ操作言語 (DML) の見積コスト・ヒストグラム
- アクティビティー DML の到着間隔時間のヒストグラム
- ENABLE または DISABLE
- データベース・アクティビティーをサブミットする際にこの作業アクションを考慮するかどうかを指定します。 デフォルトは ENABLE です。
- ENABLE
- この作業アクションが有効であり、データベース・アクティビティーのサブミット時に考慮することを指定します。
- DISABLE
- 作業アクションが無効であり、データベース・アクティビティーのサブミット時に考慮の対象にならないことを指定します。
- 有効なしきい値タイプについては、
- ENABLE または DISABLE
- データベース・アクティビティーをサブミットする際にこの作業アクション・セットを考慮するかどうかを指定します。 デフォルトは ENABLE です。
- ENABLE
- この作業アクション・セットが有効であり、データベース・アクティビティーのサブミット時に考慮することを指定します。
- DISABLE
- この作業アクション・セットが無効であり、データベース・アクティビティーのサブミット時に考慮の対象とならないことを指定します。
ヒストグラム・テンプレート文節 - この作業アクションの割り当て先の作業クラスに関連するアクティビティーの集約アクティビティー・データを収集する際に使用するヒストグラム・テンプレートを指定します。 作業クラスの集約アクティビティー・データが収集されるのは、作業アクション・タイプが COLLECT AGGREGATE ACTIVITY DATA となっている場合だけです。
- アクティビティー存続時間ヒストグラム・テンプレート template-name
- 特定の間隔で実行中のデータベース・アクティビティーの所要時間 (ミリ秒単位) に関する統計データを収集するために使用されるヒストグラムを記述するテンプレートを指定します。 データベース・アクティビティーは、この作業アクションの割り当て先の作業クラスに関連するアクティビティーです。 この時間には、キューに入っていた時間と実行時間の両方が含まれます。 デフォルトは SYSDEFAULTHISTOGRAM です。 この情報は、COLLECT AGGREGATE ACTIVITY DATA 節と、その BASE または EXTENDED のどちらかのオプションが指定されている場合にのみ収集されます。
- アクティビティー・キュー時間ヒストグラム・テンプレート template-name
- データベース・アクティビティーが特定の間隔でキューに入れられている時間 (ミリ秒単位) に関する統計データを収集するために使用されるヒストグラムを記述するテンプレートを指定します。 データベース・アクティビティーは、この作業アクションの割り当て先の作業クラスに関連するアクティビティーです。 デフォルトは SYSDEFAULTHISTOGRAM です。 この情報は、COLLECT AGGREGATE ACTIVITY DATA 節と、その BASE または EXTENDED のどちらかのオプションが指定されている場合にのみ収集されます。
- ACTIVITY EXECUTETIME HISTOGRAM TEMPLATE テンプレート名
- データベース・アクティビティーが特定の間隔で実行されている時間 (ミリ秒単位) に関する統計データを収集するために使用されるヒストグラムを記述するテンプレートを指定します。 データベース・アクティビティーは、この作業アクションの割り当て先の作業クラスに関連するアクティビティーです。 この時間には、アクティビティーがキューに入っていた時間は含まれません。 アクティビティー実行時間は、アクティビティーが実行される メンバー ごとにこのヒストグラムで収集されます。 アクティビティーのコーディネーター・ メンバーでは、これはエンドツーエンド実行時間 (つまり、存続時間からキューに入れられた時間を引いた時間) です。 非コーディネーター・ メンバーの場合、これは、これらの メンバー がアクティビティーのために作業に費やす時間です。 特定のアクティビティーの実行中に、データベース・マネージャーは非コーディネーター・ メンバー に複数回作業を提示する場合があり、非コーディネーター・ メンバー がそのアクティビティーのオカレンスの実行時間を収集するたびに、そのアクティビティーの実行時間を収集します。 したがって、実行時のヒストグラムのカウントは、 メンバーで実行された固有のアクティビティーの実際の数を表していない可能性があります。 デフォルトは SYSDEFAULTHISTOGRAM です。 この情報は、COLLECT AGGREGATE ACTIVITY DATA 節と、その BASE または EXTENDED のどちらかのオプションが指定されている場合にのみ収集されます。
- ACTIVITY ESTIMATEDCOST HISTOGRAM TEMPLATE テンプレート名
- この作業アクションの割り当て先作業クラスに関連する DML アクティビティーの見積コスト (timeron 単位) に関する統計データを収集するために使用されるヒストグラムを記述するテンプレートを指定します。 デフォルトは SYSDEFAULTHISTOGRAM です。 この情報は、COLLECT AGGREGATE ACTIVITY DATA 節とその EXTENDED オプションが指定されている場合にのみ収集されます。
- ACTIVITY INTERARRIVALTIME HISTOGRAM TEMPLATE テンプレート名
- この作業アクションの割り当て先作業クラスに関連するすべてのアクティビティーについて、1 つの DML アクティビティーの到着から次の DML アクティビティーの到着までの間の時間の長さ (ミリ秒単位) に関する統計データを収集するために使用されるヒストグラムを記述するテンプレートを指定します。 デフォルトは SYSDEFAULTHISTOGRAM です。 この情報は、COLLECT AGGREGATE ACTIVITY DATA 節とその EXTENDED オプションが指定されている場合にのみ収集されます。
ルール
- ワークロード管理 (WLM) 排他 SQL ステートメントの後は COMMIT または ROLLBACK ステートメントでなければなりません (SQLSTATE 5U021)。 WLM 排他 SQL ステートメントは次のとおりです。
- CREATE HISTOGRAM TEMPLATE、ALTER HISTOGRAM TEMPLATE、または DROP (ヒストグラム・テンプレート)
- CREATE SERVICE CLASS、ALTER SERVICE CLASS、または DROP (サービス・クラス)
- CREATE THRESHOLD、ALTER THRESHOLD、または DROP (しきい値)
- CREATE WORK ACTION SET、ALTER WORK ACTION SET、または DROP (作業アクション・セット)
- CREATE WORK CLASS SET、ALTER WORK CLASS SET、または DROP (作業クラス・セット)
- CREATE WORKLOAD、ALTER WORKLOAD、または DROP (ワークロード)
- GRANT (ワークロード特権) または REVOKE (ワークロード特権)
- WLM 排他 SQL ステートメントをグローバル・トランザクション (例えば XA トランザクション) 内で発行することはできません (SQLSTATE 51041)。
注
- 変更はシステム・カタログに書き込まれますが、コミットされるまでは有効になりません。 これは、ステートメントを発行する接続の場合でも当てはまります。
- 全パーティションを通じて、同時に実行できる非コミットの WLM 排他 SQL ステートメントは 1 つのみです。 非コミットの WLM 排他 SQL ステートメントが実行されている場合、後続の WLM 排他 SQL ステートメントは、現行の WLM 排他 SQL ステートメントがコミットまたはロールバックされるまで待機します。
- 代替構文: 以前のバージョンの Db2® および他のデータベース製品との互換性のために、以下がサポートされています。 これらの代替は非標準であり、使用すべきではありません。
- DB2_ENFORCE_MEMBER_SYNTAX レジストリー変数が ON に設定されている場合を除き、DATABASE PARTITION を MEMBER の代わりに指定できます。
- DB2_ENFORCE_MEMBER_SYNTAX レジストリー変数が ON に設定されている場合を除き、DATABASE PARTITIONS を MEMBERS の代わりに指定できます。
- 適用対象となる有効範囲は、しきい値タイプに基づいて自動的に決定されます。 CONCURRENTDBCOORDACTIVITIES タイプしきい値の場合、この環境は、デフォルトで DATABASE 適用範囲 Db2 pureScale®以外の環境では MEMBER 適用範囲、 Db2 pureScale 環境では MEMBER 適用範囲になる適用範囲を決定するためにも使用されます。
例
- 例 1: すべてのデータベース・アクティビティーに適用する DATABASE_ACTIONS という名前の作業アクション・セットを作成します。 LARGE_QUERIES 作業クラス・セットを使用し、次の作業アクションを定義します。 作業アクション ONE_CONCURRENT_QUERY は 1 つのしきい値アクションを持ちます。このアクションは、照会が LARGE_ESTIMATED_COST 作業クラス内にある場合にシステムで一度に 1 つずつ並行照会を実行することができます。 そのしきい値を超過するとデータベース・マネージャーはアクティビティーをキューに入れますが、一度に複数のデータベース・アクティビティーがキューに入れられないようにします。 キューのしきい値を超過した場合はデータベース・アクティビティーを実行できなくなります。 作業アクション TWO_CONCURRENT_QUERIES は 1 つのしきい値アクションを持ちます。
このアクションは、照会が LARGE_CARDINALITY 作業クラス内にある場合に 2 つの並行照会を同時に実行することができます。
照会が 2 つ以下の場合はキューに入れます。 3 つ以上の照会をキューに入れる場合、データベース・アクティビティーは照会をキューに入れ続け、データベース・アクティビティー・データをアクティビティー・イベント・モニターに収集します (1 つがアクティブな場合)。
CREATE WORK ACTION SET DATABASE_ACTIONS FOR DATABASE USING WORK CLASS SET LARGE_QUERIES (WORK ACTION ONE_CONCURRENT_QUERY ON WORK CLASS LARGE_ESTIMATED_COST WHEN CONCURRENTDBCOORDACTIVITIES > 1 AND QUEUEDACTIVITIES > 1 STOP EXECUTION, WORK ACTION TWO_CONCURRENT_QUERIES ON WORK CLASS LARGE_CARDINALITY WHEN CONCURRENTDBCOORDACTIVITIES > 2 AND QUEUEDACTIVITIES > 2 COLLECT ACTIVITY DATA CONTINUE)
- 例 2: MAP_SELECTS という名前の 1 つの作業アクションを持つ ADMIN_APPS_ACTIONS という名前の作業アクション・セットを作成します。これはサービス・スーパークラス ADMIN_APPS の下実行されるデータベース・アクティビティーに適用されます。 作業アクションは、SELECT_CLASS 作業クラス内にあるすべてのデータベース・アクティビティーをサービス・サブクラス SELECTS_SERVICE_CLASS (DML_SELECTS 作業クラス・セットにある) にマップします。
CREATE WORK ACTION SET ADMIN_APPS_ACTIONS FOR SERVICE CLASS ADMIN_APPS USING WORK CLASS SET DML_SELECTS (WORK ACTION MAP_SELECTS ON WORK CLASS SELECT_CLASS MAP ACTIVITY TO SELECTS_SERVICE_CLASS)