ALTER WORK CLASS SET ステートメント
ALTER WORK CLASS SET ステートメントは、作業クラス・セットに作業クラスを追加、変更、またはドロップします。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むか、あるいは対話式に発行することができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。
許可
このステートメントの許可 ID が持つ特権には、WLMADM または DBADM 権限が含まれている 必要があります。
構文
Notes:
- 1 The ADD, ALTER, and DROP clauses are processed in the order in which they are specified.
- 2 The same clause must not be specified more than once.
説明
- ワーク・クラス・セット名
- 変更する作業クラス・セットを識別します。 これは、1 部構成の名前です。 これは、SQL ID です (通常 ID または区切り ID)。 work-class-set-name には、現行のサーバー上に既に存在する作業クラス・セット名を指定する必要があります (SQLSTATE 42704)。
- ADD
- 作業クラス・セットに作業クラスを追加します。 詳しくは、
CREATE WORK CLASS SET
を参照してください。 - ALTER
- データベース・アクティビティーの属性と、作業クラス・セット内での特定の作業クラスの位置を変更します。
- WORK CLASS ワーク・クラス名
- 変更する作業クラスを識別します。 work-class-name には、現行のサーバー上の作業クラス・セットに既存の作業クラスを指定する必要があります (SQLSTATE 42704)。
- DROP
- 作業クラス・セットから作業クラスをドロップします。
- WORK CLASS ワーク・クラス名
- ドロップする作業クラスを識別します。 work-class-name には、現行のサーバー上の作業クラス・セットに既存の作業クラスを指定する必要があります (SQLSTATE 42704)。 この作業クラス・セットに関連付けられている作業アクション・セットのいずれかに従属する作業アクションがある作業クラスはドロップできません (SQLSTATE 42893)。
for-to-from-alter-clause - FOR
- FROM from-value TO to-value 節で指定されている情報のタイプを示します。 FOR 節は、以下の作業タイプでのみ使用されます。
- すべて
- 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 が含まれています。 この範囲は以下の作業タイプでのみ使用されます。
- すべて
- 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)。
- ALL UNITS UNBOUNDED
- FROM from-value TO to-value 節に範囲を指定せず、指定した作業タイプに含まれるすべての作業を組み込むことを示します。
schema-alter-clause - ROUTINES
- この節は、作業タイプが CALL または ALL で、データベース・アクティビティーが CALL ステートメントの場合にのみ使用されます。
- IN SCHEMA スキーマ名
- CALL ステートメントが呼び出すプロシージャーのスキーマ名を指定します。
- すべて
- すべてのスキーマを組み込むことを指定します。
データ・タグ変更節 (data-tag-alter-clause)- データ・タグ・リストに integer-constant が含まれています
- データベース・アクティビティーがこの作業クラスの一部となる場合に、そのアクティビティーが影響を与える可能性があるデータに指定されるタグの値を指定します。 この作業クラスでこの節が指定されていない場合、作業タイプが影響を与える可能性があるデータに関係なく、指定された作業タイプに該当するすべての作業が含まれます (つまり、デフォルトではデータ・タグを無視します)。 この節は、作業タイプが READ、WRITE、DML、または ALL で、データベース・アクティビティーが DML ステートメントである場合にのみ使用されます。 integer-constant の有効な値は、1 から 9 までの整数です。
- DATA TAG LIST CONTAINS ANY
- これを指定すると、任意のデータ・タグ設定 (データ・タグなしを含む) がこの作業クラスで有効になります。 データ・タグに関係なく、指定した作業タイプに含まれるすべての作業が組み込まれます。
POSITION 節- POSITION
- この作業クラスを作業クラス・セット内のどの位置に配置するかを指定します。
この位置によって、作業クラスが評価される順序が決まります。 実行時に作業クラスの割り当てを実行する際、データベース・マネージャーは、まずデータベースまたはサービス・スーパークラスのどちらかのオブジェクトに関連付けられている作業クラス・セットを判別します。 次に、その作業クラス・セット内で最初に一致する作業クラスが選択されます。 このキーワードが指定されていない場合、作業クラスは最後尾に配置されます。
- LAST
- 作業クラスを、作業クラス・セット内で作業クラスの番号付きリストの最後尾に配置することを指定します。
- BEFORE ワーク・クラス名
- 作業クラスを、リストの作業クラス work-class-name の前に配置することを指定します。 work-class-name は、現行のサーバー上に存在する作業クラス・セットの作業クラスを識別するものでなければなりません (SQLSTATE 42704)。
- AFTER ワーク・クラス名
- 作業クラスを、リストの作業クラス work-class-name の後に配置することを指定します。 work-class-name は、現行のサーバー上に存在する作業クラス・セットの作業クラスを識別するものでなければなりません (SQLSTATE 42704)。
- AT 位置
- 作業クラス・セット内で作業クラスを配置する位置を、作業クラスの番号付きリストの中での絶対位置として指定します。 この値には、任意の正整数 (ゼロ以外) を指定できます (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 に変更を加えて、既存の 2 つの作業クラスの範囲がそれぞれ 100 000 から始まって上限なしとなるように設定します。 見積コスト (timeron 単位) が 10 000 以上のすべての SELECT ステートメントに 3 つ目の作業クラスを追加し、この作業クラスが既存の 2 つの作業クラスよりも高い優先順位を持つように配置します。
ALTER WORK CLASS SET LARGE_QUERIES ALTER WORK CLASS LARGE_ESTIMATED_COST FOR TIMERONCOST FROM 100000 TO UNBOUNDED ALTER WORK CLASS LARGE_CARDINALITY FOR CARDINALITY FROM 100000 TO UNBOUNDED ADD WORK CLASS LARGE_SELECTS WORK TYPE READ FOR TIMERONCOST FROM 10000 TO UNBOUNDED POSITION AT 1
- 例 2: DML_STATEMENTS という名前のワーク・クラス・セットを変更して、DELETE、INSERT、 MERGE、 または UPDATE ステートメントを含むすべての DML SELECT ステートメントを表すワーク・クラスを追加します。
ALTER WORK CLASS SET DML_STATEMENTS ADD WORK CLASS UPDATE_CLASS WORK TYPE WRITE