CREATE WORK ACTION SET ステートメント
CREATE WORK ACTION SET ステートメントは、作業アクション・セットおよびその中の作業アクションを定義します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むか、あるいは対話式に発行することができます。これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。
許可
このステートメントの許可 ID が持つ特権には、WLMADM または DBADM 権限が含まれている 必要があります。
構文
説明
- work-action-set-name
- 作業アクション・セットの名前を指定します。 これは、1 部構成の名前です。 これは、SQL ID です (通常 ID または区切り ID)。 work-action-set-name は、現行のサーバー上に既に存在する作業アクション・セットを識別するものであってはなりません (SQLSTATE 42710)。 名前を文字 SYS で始めることはできません (SQLSTATE 42939)。
- FOR
- この作業アクション・セットのアクションが適用されるデータベース・マネージャー・オブジェクトを指定します。
データベース・マネージャー・オブジェクトにはそれぞれ作業アクション・セットを 1 つだけ定義できます (SQLSTATE 5U017)。
- DATABASE
- この作業アクション・セットのアクションはデータベースに適用されます。 DATABASE が指定された場合、MAP ACTIVITY アクションは指定できません (SQLSTATE 5U034)。
- SERVICE CLASS 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-name に適用されます。 WORKLOAD が指定された場合、MAP ACTIVITY アクションは指定できません (SQLSTATE 5U034)。 現行サーバーに workload-name が存在しなければなりません (SQLSTATE 42704)。workload-name を SYSDEFAULTADMWORKLOAD にすることはできません (SQLSTATE 5U032)。
- USING WORK CLASS SET work-class-set-name
- アクションの実行対象データベース・アクティビティーを分類する作業クラスを含む作業クラス・セットを指定します。 work-class-set-name は、現行のサーバーに存在するものでなければなりません (SQLSTATE 42704)。
- work-action-definition
- 作業アクションの定義を指定します。
- WORK ACTION work-action-name
- 作業アクションの名前を指定します。 work-action-name は、現行のサーバーのこの作業アクション・セットの下に既存の作業アクションを識別するものであってはなりません (SQLSTATE 42710)。 work-action-name の先頭に SYS を使用することはできません (SQLSTATE 42939)。
- ON WORK CLASS work-class-name
- この作業アクションが適用されるデータベース・アクティビティーを識別する作業クラスを指定します。 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-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
- アクティビティーが処理されるすべてのメンバーでアクティビティー・データを収集することを指定します。リモート・メンバーでは、アクティビティーがそれらのメンバーで発生および終了するときに、アクティビティーの 1 レコードが複数回キャプチャーされる場合があります。 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 データベース構成パラメーターの値と <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
- この作業アクション・セットが無効であり、データベース・アクティビティーのサブミット時に考慮の対象とならないことを指定します。
- histogram-template-clause
- この作業アクションの割り当て先の作業クラスに関連するアクティビティーの集約アクティビティー・データを収集する際に使用するヒストグラム・テンプレートを指定します。
作業クラスの集約アクティビティー・データが収集されるのは、作業アクション・タイプが COLLECT AGGREGATE ACTIVITY DATA となっている場合だけです。
- ACTIVITY LIFETIME HISTOGRAM TEMPLATE template-name
- 特定の間隔で実行中のデータベース・アクティビティーの所要時間 (ミリ秒単位) に関する統計データを収集するために使用されるヒストグラムを記述するテンプレートを指定します。データベース・アクティビティーは、この作業アクションの割り当て先の作業クラスに関連するアクティビティーです。この時間には、キューに入っていた時間と実行時間の両方が含まれます。 デフォルトは SYSDEFAULTHISTOGRAM です。 この情報は、COLLECT AGGREGATE ACTIVITY DATA 節と、その BASE または EXTENDED のどちらかのオプションが指定されている場合にのみ収集されます。
- ACTIVITY QUEUETIME HISTOGRAM TEMPLATE template-name
- データベース・アクティビティーが特定の間隔でキューに入れられている時間 (ミリ秒単位) に関する統計データを収集するために使用されるヒストグラムを記述するテンプレートを指定します。データベース・アクティビティーは、この作業アクションの割り当て先の作業クラスに関連するアクティビティーです。デフォルトは SYSDEFAULTHISTOGRAM です。 この情報は、COLLECT AGGREGATE ACTIVITY DATA 節と、その BASE または EXTENDED のどちらかのオプションが指定されている場合にのみ収集されます。
- ACTIVITY EXECUTETIME HISTOGRAM TEMPLATE template-name
- データベース・アクティビティーが特定の間隔で実行されている時間 (ミリ秒単位) に関する統計データを収集するために使用されるヒストグラムを記述するテンプレートを指定します。データベース・アクティビティーは、この作業アクションの割り当て先の作業クラスに関連するアクティビティーです。この時間には、アクティビティーがキューに入っていた時間は含まれません。 このヒストグラムでは、アクティビティーが実行される各メンバー ごとにアクティビティーの実行時間が収集されます。 アクティビティーのコーディネーターのメンバーの場合、これはエンドツーエンドの実行時間です (つまり、存続時間からキューに入っていた時間を差し引いた時間)。 コーディネーター メンバー 以外の場合、これはこれらの メンバー がアクティビティーの代わりに費やした時間です。 特定のアクティビティーの実行中、データベース・マネージャーは、コーディネーターではないメンバーに対して作業を複数回提示することがあります。コーディネーターではないメンバーはそのたびにアクティビティーのオカレンスの実行時間を収集します。そのため、実行時間のヒストグラムの数は、メンバーで実行された固有アクティビティーの実際の数とは異なる場合があります。 デフォルトは SYSDEFAULTHISTOGRAM です。 この情報は、COLLECT AGGREGATE ACTIVITY DATA 節と、その BASE または EXTENDED のどちらかのオプションが指定されている場合にのみ収集されます。
- ACTIVITY ESTIMATEDCOST HISTOGRAM TEMPLATE template-name
- この作業アクションの割り当て先作業クラスに関連する DML アクティビティーの見積コスト (timeron 単位) に関する統計データを収集するために使用されるヒストグラムを記述するテンプレートを指定します。 デフォルトは SYSDEFAULTHISTOGRAM です。 この情報は、COLLECT AGGREGATE ACTIVITY DATA 節とその EXTENDED オプションが指定されている場合にのみ収集されます。
- ACTIVITY INTERARRIVALTIME HISTOGRAM TEMPLATE template-name
- この作業アクションの割り当て先作業クラスに関連するすべてのアクティビティーについて、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 ステートメントがコミットまたはロールバックされるまで待機します。
- 適用対象となる有効範囲は、しきい値タイプに基づいて自動的に決定されます。 CONCURRENTDBCOORDACTIVITIES タイプのしきい値の場合は、適用対象となる有効範囲を決定する際に、環境も考慮されます。DATABASE 有効範囲がデフォルトとなります。
例
- 例 1: すべてのデータベース・アクティビティーに適用する DATABASE_ACTIONS という名前の作業アクション・セットを作成します。
LARGE_QUERIES 作業クラス・セットを使用し、次の作業アクションを定義します。
作業アクション ONE_CONCURRENT_QUERY は 1 つのしきい値アクションを持ちます。このアクションは、照会が LARGE_ESTIMATED_COST 作業クラス内にある場合にシステムで一度に 1 つずつ並行照会を実行することができます。
そのしきい値を超過するとデータベース・マネージャーはアクティビティーをキューに入れますが、一度に複数のデータベース・アクティビティーがキューに入れられないようにします。
キューのしきい値を超過した場合はデータベース・アクティビティーを実行できなくなります。
作業アクション TWO_CONCURRENT_QUERIES は 1 つのしきい値アクションを持ちます。
このアクションは、照会が LARGE_CARDINALITY 作業クラス内にある場合に 2 つの並行照会を同時に実行することができます。
照会が 2 つ以下の場合はキューに入れます。
2 つを超える照会がキューに入れられる場合、データベース・アクティビティーはキューに照会を入れ続け、データベース・アクティビティー・データをアクティビティー・イベント・モニター (アクティブになっている場合) で収集します。
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)
