CREATE WORK CLASS SET ステートメント
CREATE WORK CLASS SET ステートメントは、作業クラス・セットを定義します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むか、あるいは対話式に発行することができます。これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。
許可
このステートメントの許可 ID が持つ特権には、WLMADM または DBADM 権限が含まれている 必要があります。
構文
説明
- work-class-set-name
- 作業クラス・セットの名前を指定します。 これは、1 部構成の名前です。 これは、SQL ID です (通常 ID または区切り ID)。 work-class-set-name は、現行のサーバー上に既に存在する作業クラス・セットを識別するものであってはなりません (SQLSTATE 42710)。 名前を文字 SYS で始めることはできません (SQLSTATE 42939)。
- work-class-definition
- 作業クラスの定義を指定します。
- WORK CLASS work-class-name
- 作業クラスの名前を指定します。 work-class-name は、現行のサーバー上の作業クラス・セット内に既に存在する作業クラスを識別するものであってはなりません (SQLSTATE 42710)。 work-class-name を SYS で始めることはできません (SQLSTATE 42939)。
- work-attributes
- データベース・アクティビティーの属性は、アクティビティーがこの作業クラスと関連付けられる場合、この作業クラスで指定されているすべての属性と一致する必要があります。
- WORK TYPE
- データベース・アクティビティーのタイプを指定します。
- READ
- このアクティビティーには次のステートメントが含まれます。
- DELETE、INSERT、MERGE、または UPDATE ステートメントを含まないすべての SELECT または SELECT INTO ステートメント、およびすべての VALUES INTO ステートメント
- すべての XQuery ステートメント
- WRITE
- このアクティビティーには次のステートメントが含まれます。
- UPDATE
- DELETE
- INSERT
- MERGE
- DELETE、INSERT、または UPDATE ステートメントを含むすべての SELECT ステートメント、およびすべての VALUES INTO ステートメント
- CALL
- CALL ステートメントが含まれます。 CALL ステートメントは、作業クラスの作業タイプが CALL または ALL の場合に考慮されます。
- DML
- READ と WRITE でリストされているステートメントが含まれます。
- DDL
- このアクティビティーには次のステートメントが含まれます。
- ALTER
- CREATE
- COMMENT
- DECLARE GLOBAL TEMPORARY TABLE
- DROP
- FLUSH PACKAGE CACHE
- GRANT
- REFRESH TABLE
- RENAME
- REVOKE
- SET INTEGRITY
- LOAD
- データベースのロード操作。
- ALL
- 認識されたワークロード管理 (WLM) アクティビティーのうち、WORK TYPE の説明中の前出のキーワードに該当するすべてのアクティビティー。
- FOR
- FROM from-value TO to-value 節で指定されている情報のタイプを示します。
FOR 節は、以下の作業タイプでのみ使用されます。
- ALL
- DML
- READ
- WRITE
- TIMERONCOST
- 作業の見積コスト (timeron 単位)。 この値は、作業が FROM from-value TO to-value 節で指定された範囲に入るかどうかを判断するために使用されます。
- CARDINALITY
- 作業の見積カーディナリティー。 この値は、作業が FROM from-value TO to-value 節で指定された範囲に入るかどうかを判断するために使用されます。
- FROM from-value TO UNBOUNDED または FROM from-value TO to-value
- timeron 値 (見積コストの場合) またはカーディナリティーの範囲を指定します。
データベース・アクティビティーがこの作業クラスに属するためには、この範囲に収まっていなければなりません。
この範囲には、from-value および to-value が含まれています。
作業クラスでこの節が指定されていない場合、指定された作業タイプに該当するすべての作業が含まれます (つまり、デフォルトは FROM 0 TO UNBOUNDED です)。
この範囲は以下の作業タイプでのみ使用されます。
- ALL
- DML
- READ
- WRITE
- FROM from-value TO UNBOUNDED
- from-value は、ゼロまたは正の DOUBLE 値でなければなりません (SQLSTATE 5U019)。 範囲に上限はありません。
- FROM from-value TO to-value
- from-value はゼロまたは正の DOUBLE 値でなければならず、to-value は正の DOUBLE 値でなければなりません。 from-value は to-value 以下でなければなりません (SQLSTATE 5U019)。
- DATA TAG LIST CONTAINS integer-constant
- データベース・アクティビティーがこの作業クラスの一部となる場合に、そのアクティビティーが影響を与える可能性があるデータに指定されるタグの値を指定します。 この作業クラスでこの節が指定されていない場合、作業タイプが影響を与える可能性があるデータに関係なく、指定された作業タイプに該当するすべての作業が含まれます (つまり、デフォルトではデータ・タグを無視します)。この節は、作業タイプが READ、WRITE、DML、または ALL で、データベース・アクティビティーが DML ステートメントの場合にのみ使用されます。 integer-constant の有効値は、1 から 9 までの整数定数です。
- schema-clause
- ROUTINES IN SCHEMA schema-name
- CALL ステートメントが呼び出すプロシージャーのスキーマ名を指定します。 この節は、作業タイプが CALL または ALL で、データベース・アクティビティーが CALL ステートメントの場合にのみ使用されます。 値が指定されていない場合、すべてのスキーマが含められます。
- position-clause
- POSITION
- この作業クラスを作業クラス・セット内のどの位置に配置するかを指定します。
この位置によって、作業クラスが評価される順序が決まります。
実行時に作業クラスの割り当てを実行する際、データベース・マネージャーは、まずデータベースまたはサービス・スーパークラスのどちらかのオブジェクトに関連付けられている作業クラス・セットを判別します。
次に、その作業クラス・セット内で最初に一致する作業クラスが選択されます。
このキーワードが指定されていない場合、作業クラスは最後尾に配置されます。
- LAST
- 作業クラスを、作業クラス・セット内で作業クラスの番号付きリストの最後尾に配置することを指定します。 これはデフォルトです。
- BEFORE work-class-name
- 作業クラスを、リストの作業クラス work-class-name の前に配置することを指定します。 work-class-name は、現行のサーバー上に存在する作業クラス・セットの作業クラスを識別するものでなければなりません (SQLSTATE 42704)。
- AFTER work-class-name
- 作業クラスを、リストの作業クラス work-class-name の後に配置することを指定します。 work-class-name は、現行のサーバー上に存在する作業クラス・セットの作業クラスを識別するものでなければなりません (SQLSTATE 42704)。
- AT position
- 作業クラス・セット内で作業クラスを配置する位置を、作業クラスの番号付きリストの中での絶対位置として指定します。 この値には、任意の正整数 (ゼロ以外) を指定できます (SQLSTATE 42615)。position が既存の作業クラスの数に 1 を足した値より大きい場合、その作業クラスは作業クラス・セットの最後尾に配置されます。
規則
- ワークロード管理 (WLM) 排他 SQL ステートメントの後は COMMIT または ROLLBACK ステートメントでなければなりません (SQLSTATE 5U021)。
WLM 排他 SQL ステートメントは次のとおりです。
- CREATE HISTOGRAM TEMPLATE、ALTER HISTOGRAM TEMPLATE、または DROP (HISTOGRAM TEMPLATE)
- CREATE SERVICE CLASS、ALTER SERVICE CLASS、または DROP (SERVICE CLASS)
- CREATE THRESHOLD、ALTER THRESHOLD、または DROP (THRESHOLD)
- CREATE WORK ACTION SET、ALTER WORK ACTION SET、または DROP (WORK ACTION SET)
- CREATE WORK CLASS SET、ALTER WORK CLASS SET、または DROP (WORK CLASS SET)
- CREATE WORKLOAD、ALTER WORKLOAD、または DROP (WORKLOAD)
- GRANT (ワークロード特権) または REVOKE (ワークロード特権)
- WLM 排他 SQL ステートメントをグローバル・トランザクション (例えば XA トランザクション) 内で発行することはできません (SQLSTATE 51041)。
注
- 変更はシステム・カタログに書き込まれますが、コミットされるまでは有効になりません。 これは、ステートメントを発行する接続の場合でも当てはまります。
- 全パーティションを通じて、同時に実行できる非コミットの WLM 排他 SQL ステートメントは 1 つのみです。 非コミットの WLM 排他 SQL ステートメントが実行されている場合、後続の WLM 排他 SQL ステートメントは、現行の WLM 排他 SQL ステートメントがコミットまたはロールバックされるまで待機します。
例
- 例 1: LARGE_QUERIES という名前の作業クラス・セットを作成します。
これは 9999 より大きい見積コストと 1000 より大きい見積カーディナリティーを持つすべての DML を表す作業クラスのセットを持ちます。
CREATE WORK CLASS SET LARGE_QUERIES (WORK CLASS LARGE_ESTIMATED_COST WORK TYPE DML FOR TIMERONCOST FROM 9999 TO UNBOUNDED, WORK CLASS LARGE_CARDINALITY WORK TYPE DML FOR CARDINALITY FROM 1000 TO UNBOUNDED) - 例 2: DML_SELECTS という名前の作業クラス・セットを作成します。これは DELETE、INSERT、MERGE、 または UPDATE ステートメントを含まないすべての DML SELECT ステートメントを表す作業クラスを持ちます。
CREATE WORK CLASS SET DML_SELECTS (WORK CLASS SELECT_CLASS WORK TYPE READ)
