ALTER WORKLOAD ステートメント
ALTER WORKLOAD ステートメントは、ワークロードを変更します。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むか、あるいは対話式に発行することができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。
許可
- SQLADM 権限 (すべての変更節が COLLECT 節の場合のみ)
- WLMADM 権限
- DBADM 権限
構文
- 1 The same clause must not be specified more than once.
- 2 Each connection attribute clause can only be specified once.
- 3 The DETAILS keyword is the minimum to be specified, followed by the option separated by a comma.
説明
- ワークロード名
- 変更するワークロードを識別します。 これは、1 部構成の名前です。 これは、SQL ID です (通常 ID または区切り ID)。 workload-name には、現行のサーバー上の既存のワークロードを指定する必要があります (SQLSTATE 42704)。
- ADD 接続属性
- ワークロードの定義に 1 つ以上の接続属性の値を追加します。 指定する各接続属性の値は、ワークロードに既に定義されている値であってはなりません (SQLSTATE 5U039)。 workload-name が 'SYSDEFAULTUSERWORKLOAD' または 'SYSDEFAULTADMWORKLOAD' の場合は、ADD オプションを指定できません (SQLSTATE 42832)。
- DROP 接続-属性
- ワークロードの定義から 1 つ以上の接続属性の値をドロップします。 指定する各接続属性の値は、ワークロードに定義されている値でなければなりません (SQLSTATE 5U040)。 workload-name が 'SYSDEFAULTUSERWORKLOAD' または 'SYSDEFAULTADMWORKLOAD' の場合は、DROP オプションを指定できません (SQLSTATE 42832)。 少なくとも 1 つの接続属性の値が定義されている必要があります。 最後の接続属性の値はドロップできません (SQLSTATE 5U022)。 接続属性
- ワークロードの接続属性の値を指定します。 ADDRESS を除くすべての接続属性に大/小文字の区別があります。
- ADDRESS ('アドレス値', ...)
- ADDRESS 接続属性に、IPv4 アドレス、IPv6 アドレス、またはセキュア・ドメイン・ネームを 1 つ以上指定します。 1 つのアドレス値をリストの中で複数回指定することはできません (SQLSTATE 42713)。 サポートされるプロトコルは TCP/IP のみです。 各アドレス値は、IPv4 アドレス、IPv6 アドレス、またはセキュア・ドメイン・ネームでなければなりません。
IPv4 アドレスの先頭にスペースが含まれていてはなりません。 このアドレスは小数点付き 10 進数アドレスとして表されます。 例えば IPv4 アドレスは、9.112.46.111 のようになります。 値 localhost またはそれに相当する表現 127.0.0.1 は、一致という結果になりません。代わりにホストの実 IPv4 アドレスを指定する必要があります。 IPv6 アドレスの先頭にスペースが含まれていてはなりません。 このアドレスはコロン区切りの 16 進アドレスとして表されます。 IPv6 アドレスの例としては、 2001:0DB8:0000:0000:0008:0800:200C:417A. IPv4-mapped IPv6 アドレス (例えば、::ffff:192.0.2.128) が一致しない場合があります。 同じように、localhost またはその IPv6 短表現 ::1 も一致という結果になりません。 ドメイン・ネームはドメイン・ネーム・サーバーで IP アドレスに変換されます。 結果として生成される IPv4 または IPv6 アドレスはこのサーバーで決定されます。 例えばドメイン・ネームは、corona.torolab.ibm.com のようになります。 ドメイン・ネームが IP アドレスに変換されたとき、この変換の結果が 1 つ以上の IP アドレスのセットになる場合があります。 その場合、接続開始時の IP アドレスがドメイン名変換後の IP アドレスのいずれかと一致すると、着信接続はワークロード・オブジェクトの ADDRESS 属性と一致していると見なされます。
ワークロード・オブジェクトを作成するとき、特に動的ホスト構成プロトコル (DHCP) 環境 (デバイスが取得する IP アドレスが、ネットワークに接続するたびに異なる環境) では、静的 IP アドレスの代わりにドメイン・ネーム値を ADDRESS 属性に提供することをお勧めします。
- APPLNAME ('アプリケーション名', ...)
- APPLNAME 接続属性に 1 つ以上のアプリケーションを指定します。 1 つのアプリケーション名をリストの中で複数回指定することはできません (SQLSTATE 42713)。 application-name に単一のアスタリスク文字 (*) を含めない場合、システム・モニター出力や LIST APPLICATIONS コマンドの出力の
「アプリケーション名」
フィールドに示される値を指定します。 application-name に単一のアスタリスク文字 (*) が含まれている場合は、この値が一連のアプリケーション名を表す式として用いられています。ここでは、アスタリスク (*) はゼロ以上の文字ストリングを表します。 式でアプリケーション名に アスタリスク文字を含める必要がある場合、アスタリスク文字を 2 つ続けて使用 (**) します。 - SYSTEM_USER ('', ...)
- SYSTEM USER 接続属性に 1 つ以上の許可 ID を指定します。 1 つの許可 ID をリストの中で複数回指定することはできません (SQLSTATE 42713)。
- SESSION_USER ('', ...)
- SESSION USER 接続属性に 1 つ以上の許可 ID を指定します。 1 つの許可 ID をリストの中で複数回指定することはできません (SQLSTATE 42713)。
- SESSION_USER GROUP ('', ...)
- SESSION_USER GROUP 接続属性に 1 つ以上の許可 ID を指定します。 1 つの許可 ID をリストの中で複数回指定することはできません (SQLSTATE 42713)。
- SESSION_USER ROLE ('', ...)
- SESSION_USER ROLE 接続属性に 1 つ以上の許可 ID を指定します。 このコンテキストでの SESSION 許可 ID のロールは、どのように取得されたロールであるかに関係なく、SESSION 許可 ID に使用可能なすべてのロールを参照します。 1 つの許可 ID をリストの中で複数回指定することはできません (SQLSTATE 42713)。
- CURRENT CLIENT_USERID ('user-id', ...)
- CURRENT CLIENT_USERID 接続属性に 1 つ以上のクライアント・ユーザー ID を指定します。 1 つのクライアント・ユーザー ID をリストの中で複数回指定することはできません (SQLSTATE 42713)。 user-id に単一のアスタリスク文字 (*) が含まれている場合は、この値が一連のユーザー ID を表す式として用いられています。ここでは、アスタリスク (*) はゼロ以上の文字ストリングを表します。 式でユーザー ID にアスタリスク文字を含める必要がある場合は、アスタリスク文字を 2 つ続けて使用 (**) します。
- CURRENT CLIENT_APPLNAME ('client-application-name', ...)
- CURRENT CLIENT_APPLNAME 接続属性に 1 つ以上のアプリケーションを指定します。 1 つのアプリケーション名をリストの中で複数回指定することはできません (SQLSTATE 42713)。 client-application-name に単一のアスタリスク文字 (*) を含めない場合、システム・モニター出力の
「TP モニター・クライアント・アプリケーション名」
フィールドに示される値を指定します。 client-application-name に単一のアスタリスク文字 (*) が含まれている場合は、この値が一連のアプリケーション名を表す式として用いられています。ここでは、アスタリスク (*) はゼロ以上の文字ストリングを表します。 式でアプリケーション名に アスタリスク文字を含める必要がある場合、アスタリスク文字を 2 つ続けて使用 (**) します。 - CURRENT CLIENT_WRKSTNNAME ('ワークステーション名', ...)
- CURRENT CLIENT_WRKSTNNAME 接続属性に 1 つ以上のクライアント・ワークステーション名を指定します。 1 つのクライアント・ワークステーション名をリストの中で複数回指定することはできません (SQLSTATE 42713)。 workstation-name に単一のアスタリスク文字 (*) が含まれている場合は、この値が一連のワークステーション名を表す式として用いられています。ここでは、アスタリスク (*) はゼロ以上の文字ストリングを表します。 式でワークステーション名にアスタリスク文字を含める必要がある場合は、アスタリスク文字を 2 つ続けて使用 (**) します。
- CURRENT CLIENT_ACCTNG ('accounting-string', ...)
- CURRENT CLIENT_ACCTNG 接続属性に 1 つ以上のクライアント・アカウンティング・ストリングを指定します。 1 つのクライアント・アカウンティング・ストリングをリストの中で複数回指定することはできません (SQLSTATE 42713)。 accounting-string に単一のアスタリスク文字 (*) が含まれている場合は、この値が一連のアカウンティング・ストリングを表す式として用いられています。ここでは、アスタリスク (*) はゼロ以上の文字ストリングを表します。 式でアカウンティング・ストリングにアスタリスク文字を含める必要がある場合は、アスタリスク文字を 2 つ続けて使用 (**) します。
- ALLOW DB ACCESS または DISALLOW DB ACCESS
- このワークロードに関連付けられているワークロード・オカレンスにデータベースへのアクセスを許可するかどうかを指定します。
- ALLOW DB ACCESS
- このワークロードに関連付けられているワークロード・オカレンスにデータベースへのアクセスを許可することを指定します。
- DISALLOW DB ACCESS
- このワークロードに関連付けられているワークロード・オカレンスにデータベースへのアクセスを許可しないことを指定します。 このワークロードに関連付けられている次の作業単位は拒否されます (SQLSTATE 5U020)。 既に実行中のワークロード・オカレンスは完了まで実行できます。 workload-name が'SYSDEFAULTADMWORKLOAD' の場合は、このオプションを指定できません (SQLSTATE 42832)。
- ENABLE または DISABLE
- ワークロードを選択する際にこのワークロードを考慮するかどうかを指定します。
- ENABLE
- このワークロードを有効にし、ワークロードを選択する際にこのワークロードを考慮することを指定します。
- DISABLE
- このワークロードを無効にし、ワークロードを選択する際にこのワークロードを考慮しないことを指定します。 workload-name が SYSDEFAULTUSERWORKLOAD または SYSDEFAULTADMWORKLOAD の場合は、このオプションを指定できません (SQLSTATE 42832)。
- MAXIMUM DEGREE
- このワークロードにおける、最大のランタイム並列処理の度合いを指定します。 workload-name が SYSDEFAULTADMWORKLOAD である場合は、MAXIMUM DEGREE 属性を変更できません。
- DEFAULT
DB2_WORKLOAD=ANALYTICS
の場合、この設定により、このワークロードのパーティション内並列処理が有効になります。 それ以外の場合、この設定は、このワークロードがパーティション内並列処理の設定をデータベース・マネージャー構成パラメーター intra_parallel から継承することを指定します。 intra_parallel が NO に設定されている場合、このワークロードが実行されるときのパーティション内並列処理は無効になります。 intra_parallel が YES に設定されている場合、このワークロードが実行されるときのパーティション内並列処理は有効になります。 このワークロードでは、割り当てられたアプリケーションのためにランタイムの最大の度合いが指定されません。 したがって、実行時の実際の度合いは、max_querydegree 構成パラメーターの値、照会サービス・クラスに対して設定された MAXIMUM DEGREE、SET RUNTIME DEGREE コマンドで設定された値、および SQL ステートメントのコンパイルの度合いの中で、最も低い値になります。 degree- このワークロードにおける、最大の並列処理の度合いを指定します。 有効な値は 1 から 32,767 までです。 値が 1 の場合、関連する要求が実行されるときのパーティション内並列処理は無効になります。 値が 2 から 32,767 までの場合、関連する要求が実行されるときのパーティション内並列処理は有効になります。 実行時の実際の度合いは、この degree、max_querydegree 構成パラメーターの値、照会サービス・クラスに対して設定された MAXIMUM DEGREE、SET RUNTIME DEGREE コマンドで設定された値、および SQL ステートメントのコンパイルの度合いの中で、最も低い値になります。
- SERVICE CLASS サービス・クラス名
- このワークロードに関連付けられている要求をサービス・クラス service-class-name で実行することを指定します。 service-class-name には、現行のサーバー上の既存のサービス・クラスを指定する必要があります (SQLSTATE 42704)。 service-class-name は、'SYSDEFAULTSUBCLASS'、'SYSDEFAULTSYSTEMCLASS '、または' SYSDEFAULTMAINTENANCECLASS ' にすることはできません (SQLSTATE 5U032)。 workload-name が'SYSDEFAULTADMWORKLOAD' の場合は、このオプションを指定できません (SQLSTATE 42832)。
- UNDER サービス・スーパークラス名
- この節は、サービス・サブクラスを指定するときに使用されます。 service-superclass-name は、service-class-name のサービス・スーパークラスを識別します。 service-superclass-name には、現行のサーバー上の既存のサービス・スーパークラスを指定する必要があります (SQLSTATE 42704)。 service-superclass-name を 'SYSDEFAULTSYSTEMCLASS' または 'SYSDEFAULTMAINTENANCECLASS' にすることはできません (SQLSTATE 5U032)。
- POSITION
- ワークロードの番号付きリストの中でこのワークロードをどの位置に配置するかを指定します。 実行時には、このリストの順番で、必須の接続属性と一致する最初のワークロードが検索されます。 workload-name が 'SYSDEFAULTUSERWORKLOAD' または 'SYSDEFAULTADMWORKLOAD' の場合は、このオプションを指定できません (SQLSTATE 42832)。
- LAST
- ワークロードが、デフォルトのワークロード SYSDEFAULTUSERWORKLOAD および SYSDEFAULTADMWORKLOAD の前の、リストで最後のワークロードであることを指定します。
- BEFORE relative-workload-name
- リストの中でワークロードをワークロード relative-workload-name の前に配置することを指定します。 relative-workload-name には、現行のサーバー上の既存のワークロードを指定する必要があります (SQLSTATE 42704)。 relative-workload-name が 'SYSDEFAULTUSERWORKLOAD' または 'SYSDEFAULTADMWORKLOAD' の場合は、BEFORE オプションを指定できません (SQLSTATE 42832)。
- 後 relative-workload-name
- リストの中でワークロードをワークロード relative-workload-name の後に配置することを指定します。 relative-workload-name には、現行のサーバー上の既存のワークロードを指定する必要があります (SQLSTATE 42704)。 relative-workload-name が 'SYSDEFAULTUSERWORKLOAD' または 'SYSDEFAULTADMWORKLOAD' の場合は、AFTER オプションを指定できません (SQLSTATE 42832)。
- AT 位置
- リストの中でのワークロードの絶対位置を指定します。 この値には、任意の正整数 (ゼロ以外) を指定できます (SQLSTATE 42615)。 position が既存のワークロードの数に 1 を足した値より大きい場合、ワークロードはリストの最後、SYSDEFAULTUSERWORKLOAD および SYSDEFAULTADMWORKLOAD のすぐ前に置かれます。
- PRIORITY
- 同じサービス・スーパークラス内の他のワークロードの作業の優先順位と比較した、このワークロードの作業の優先順位を指定します。 サービス・スーパークラス内では、優先順位に基づいて、重要度の低いジョブより重要度の高いジョブが優先順位付けされます。 スーパークラス間の作業スケジューリングでは、スケジューリングの優先順位は使用されず、代わりにリソース・ベースのスケジューリングのみが使用されます。
- COLLECT ACTIVITY DATA
- このワークロードに関連付けられている各アクティビティーに関するデータを、アクティビティーが完了したときに、任意のアクティブなアクティビティー・イベント・モニターに送信するように指定します。
- alter-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 ステートメントは含まれません。
- NONE
- このワークロードに関連付けられている各アクティビティーについてはアクティビティー・データを収集しないように指定します。
- COLLECT ACTIVITY METRICS
- ワークロードの発生によりサブミットされるアクティビティーで、モニター・メトリックを収集するように指定します。 デフォルトは COLLECT ACTIVITY METRICS NONE です。
有効なアクティビティー・メトリックの収集の設定は、アクティビティーをサブミットするワークロードに関する COLLECT ACTIVITY METRICS 節で指定された属性と、MON_ACT_METRICS データベース構成パラメーターの組み合わせです。 ワークロード属性か構成パラメーターのいずれかに NONE 以外の値がある場合は、アクティビティーのメトリックが収集されます。
- NONE
- ワークロードの発生によりサブミットされる任意のアクティビティーで、メトリックを収集しないように指定します。
- BASE
- ワークロードの発生によりサブミットされる任意のアクティビティーで、基本メトリックを収集するように指定します。
- EXTENDED
- ワークロードの発生によりサブミットされる任意のアクティビティーで、基本メトリックを収集するように指定します。 さらに、以下のモニター・エレメントの値が、追加細分度により決定されることを指定します。
- total_section_time
- total_section_proc_time
- total_routine_user_code_time
- total_routine_user_code_proc_time
- total_routine_time
- COLLECT AGGREGATE ACTIVITY DATA
- このワークロードに関連したアクティビティーに関する集約アクティビティー・データを、統計イベント・モニターがアクティブな場合に、統計イベント・モニターに送信することを指定します。 この情報は、wlm_collect_int データベース構成パラメーターで指定された間隔で定期的に収集されます。 COLLECT AGGREGATE ACTIVITY DATA を指定した場合のデフォルトは、COLLECT AGGREGATE ACTIVITY DATA BASE です。
- BASE
- このワークロードに関連したアクティビティーに関する基本的な集約アクティビティー・データを、統計イベント・モニター (アクティブな場合) に送信することを指定します。 基礎集約アクティビティー・データには以下のものが含まれます。
- アクティビティー・コストの最高水準点の見積もり
- 戻り行数の最高水準点
- TEMPORARY 表スペース使用量の最高水準点。 この最高水準点が関係するのは、SQLTEMPSPACE しきい値が適用されているアクティビティーのみです。
- アクティビティー存続時間のヒストグラム
- アクティビティー・キュー時間のヒストグラム
- アクティビティー実行時間のヒストグラム
- EXTENDED
- このワークロードに関連したアクティビティーに関するすべての集約アクティビティー・データを、統計イベント・モニター (アクティブなものがある場合) に送信することを指定します。 これには、すべての基礎集約アクティビティー・データに加えて、以下のものが含まれます。
- アクティビティー・データ操作言語 (DML) の見積コスト・ヒストグラム
- アクティビティー DML の到着間隔時間のヒストグラム
- NONE
- このワークロードについて集約アクティビティー・データを収集しないように指定します。
- COLLECT AGGREGATE UNIT OF WORK DATA
- このワークロードに関連付けられている作業単位に関する集約作業単位データを、統計イベント・モニター (アクティブになっている場合) に送信するように指定します。 この情報は、wlm_collect_int データベース構成パラメーターで指定された間隔で定期的に収集されます。 COLLECT AGGREGATE UNIT OF WORK DATA が指定されている場合、デフォルトは COLLECT AGGREGATE UNIT OF WORK DATA BASE になります。
- BASE
- このワークロードに関連付けられている作業単位に関する基礎集約作業単位データを、統計イベント・モニター (アクティブになっている場合) に送信するように指定します。 基礎集約作業単位データには以下のものが含まれます。
- 作業単位存続期間ヒストグラム
- NONE
- このワークロードについて集約作業単位データを収集しないように指定します。
- COLLECT LOCK TIMEOUT DATA
- このワークロード内で生じるロック・タイムアウト・イベントのデータを、デッドロック・イベントが生じたときに、任意のアクティブなロック・イベント・モニターに送信することを指定します。 ロック・タイムアウト・データは、すべての メンバーで収集されます。 この設定は、MON_LOCKTIMEOUT データベース構成設定と連動して機能します。 最も詳細な出力を生成する設定が優先されます。
- alter-collect-history-clause
- WITHOUT HISTORY
- このワークロード内で生じるロック・イベントのデータを、ロック・イベントが生じたときに、任意のアクティブなロック・イベント・モニターに送信することを指定します。 過去のアクティビティー履歴および入力値はイベント・モニターに送信されません。
- WITH HISTORY
- このロック・イベントのタイプのすべてに対して、現行の作業単位で、過去のアクティビティー履歴を集めるよう指定します。 アクティビティー履歴のバッファーは、最大サイズの制限値が使用された後、ラップされます。
1 つのアプリケーションが保持する過去のアクティビティーの数のデフォルトの限度は 250 です。 過去のアクティビティー数が制限を越える場合には、新しい方のアクティビティーだけが報告されます。 このデフォルト値は、 レジストリー変数 DB2_MAX_INACT_STMTS を使用して別の値を指定することにより、オーバーライド できます。 過去のアクティビティー情報に使用されるシステム・モニター・ヒープ量を増加または減少させるために、制限値に別の値を選択することができます。
- AND VALUES
- 任意のアクティブなアクティビティーに入力データ値が含まれている場合、それを該当するロック・イベント・モニターに送信することを指定します。 これらのデータ値には LOB データ、LONG VARCHAR データ、LONG VARGRAPHIC データ、構造化タイプ・データ、または XML データは含まれません。 REOPT ALWAYS BIND オプションを使用してコンパイルされた SQL ステートメントについては、REOPT コンパイルまたはステートメントの実行データ値はイベント通知に提供されません。
- NONE
- ワークロードのロック・タイムアウト・データをどの メンバーでも収集しないことを指定します。
- COLLECT DEADLOCK DATA
- このワークロード内で生じるロック・イベントのデータを、デッドロック・イベントが生じたときに、任意のアクティブなロック・イベント・モニターに送信することを指定します。 デッドロック・データは、すべての メンバーについて収集されます。 この設定は、MON_DEADLOCK データベース構成パラメーターが NONE に設定されていない場合にのみ適用されます。
- alter-collect-history-clause
- WITHOUT HISTORY
- このワークロード内で生じるロック・イベントのデータを、ロック・イベントが生じたときに、任意のアクティブなロック・イベント・モニターに送信することを指定します。 過去のアクティビティー履歴および入力値はイベント・モニターに送信されません。
- WITH HISTORY
- このロック・イベントのタイプのすべてに対して、現行の作業単位で、過去のアクティビティー履歴を集めるよう指定します。 アクティビティー履歴のバッファーは、最大サイズの制限値が使用された後、ラップされます。
1 つのアプリケーションが保持する過去のアクティビティーの数のデフォルトの限度は 250 です。 過去のアクティビティー数が制限を越える場合には、新しい方のアクティビティーだけが報告されます。 このデフォルト値は、 レジストリー変数 DB2_MAX_INACT_STMTS を使用して別の値を指定することにより、オーバーライド できます。 過去のアクティビティー情報に使用されるシステム・モニター・ヒープ量を増加または減少させるために、制限値に別の値を選択することができます。
- AND VALUES
- 任意のアクティブなアクティビティーに入力データ値が含まれている場合、それを該当するロック・イベント・モニターに送信することを指定します。 これらのデータ値には LOB データ、LONG VARCHAR データ、LONG VARGRAPHIC データ、構造化タイプ・データ、または XML データは含まれません。 REOPT ALWAYS BIND オプションを使用してコンパイルされた SQL ステートメントについては、REOPT コンパイルまたはステートメントの実行データ値はイベント通知に提供されません。
- COLLECT LOCK WAIT DATA
- このワークロード内で生じるロック待機イベントのデータを、wait-time 内でロックが達成されなかった場合に、任意のアクティブなロック・イベント・モニターに送信するように指定します。 この設定は、mon_lockwait および mon_lw_thresh データベース構成パラメーターと連動して機能します。 最も詳細な出力を生成する設定が優先されます。
- alter-collect-lock-wait-data-clause
- FOR LOCKS WAITING MORE THAN wait-time SECONDS | MICROSECONDS) | 1 秒 (FOR LOCKS WAITING MORE THAN wait-time SECONDS | MICROSECONDS) | 1 SECOND)
- このワークロード内で生じるロック待機イベントのデータを、wait-time 内でロックが達成されなかった場合に、該当するイベント・モニターに送信するように指定します。
この値は、負以外の任意の整数とすることができます。 有効な期間キーワードを使用して、wait-time に適切な時間の単位を指定してください。 wait-time パラメーターに有効な最小値は 1000 マイクロ秒です。
- WITH HISTORY
- このロック・イベントのタイプのすべてに対して、現行の作業単位で、過去のアクティビティー履歴を集めるよう指定します。 アクティビティー履歴のバッファーは、最大サイズの制限値が使用された後、ラップされます。
1 つのアプリケーションが保持する過去のアクティビティーの数のデフォルトの限度は 250 です。 過去のアクティビティー数が制限を越える場合には、新しい方のアクティビティーだけが報告されます。 このデフォルト値は、 レジストリー変数 DB2_MAX_INACT_STMTS を使用して別の値を指定することにより、オーバーライド できます。 過去のアクティビティー情報に使用されるシステム・モニター・ヒープ量を増加または減少させるために、制限値に別の値を選択することができます。
- AND VALUES
- 任意のアクティブなアクティビティーに入力データ値が含まれている場合、それを該当するロック・イベント・モニターに送信することを指定します。 これらのデータ値には LOB データ、LONG VARCHAR データ、LONG VARGRAPHIC データ、構造化タイプ・データ、または XML データは含まれません。 REOPT ALWAYS BIND オプションを使用してコンパイルされた SQL ステートメントについては、REOPT コンパイルまたはステートメントの実行データ値はイベント通知に提供されません。
- NONE
- ワークロードのロック待機イベントがどの メンバーでも収集されないことを指定します。
- COLLECT UNIT OF WORK DATA
- このワークロードに関連付けられている各作業単位 (トランザクションともいう) に関するデータを、作業単位の終了時に、作業単位イベント・モニター (作成されている場合) に送信するように指定します。 デフォルトは COLLECT UNIT OF WORK BASE です。 mon_uow_data データベース構成パラメーターが BASE に設定されている場合、COLLECT UNIT OF WORK DATA パラメーターよりも優先されます。 mon_uow_data の値が NONE の場合は、個々のワークロードの COLLECT UNIT OF WORK DATA パラメーターが使用されることを示します。
- BASE
- このワークロードに関連付けられているトランザクションの基本レベルのデータが、作業単位イベント・モニターに送信されるように指定します。
作業単位イベントで報告される情報の一部は、システム・レベルの要求メトリックです。 これらのメトリックのコレクションは、作業単位データのコレクションとは別に制御されます。 要求メトリックは、スーパークラスの COLLECT REQUEST METRICS 節、または mon_req_metrics データベース構成パラメーターを使用して、制御されます。 このワークロードが関連付けられているサービス・スーパークラス、またはこのワークロードが関連付けられているサービス・サブクラスのサービス・スーパークラスでは、要求メトリックが作業単位イベント内に存在するためには、その要求メトリックのコレクションを有効にしておく必要があります。 要求メトリック・コレクションが有効になっていないと、要求メトリックの値はゼロになります。
- INCLUDE PACKAGE LIST
- このワークロードに関連付けられたトランザクションの基本レベルのデータとパッケージ・リストを、作業単位イベント・モニターに送信することを指定します。
収集されるパッケージ・リストのサイズは、mon_pkglist_sz データベース構成パラメーターの値によって決まります。 この値が 0 の場合は、PACKAGE LIST オプションを指定してもパッケージ・リストは収集されません。
パーティション・データベース環境では、コーディネーター・メンバーでのみパッケージ・リストを使用できます。 リモート・メンバーでは BASE レベルが収集されます。
作業単位イベントで報告される情報の一部は、システム・レベルの要求メトリックです。 これらのメトリックのコレクションは、作業単位データのコレクションとは別に制御されます。 要求メトリックは、スーパークラスの COLLECT REQUEST METRICS 節、または mon_req_metrics データベース構成パラメーターを使用して、制御されます。 このワークロードが関連付けられているサービス・スーパークラス、またはこのワークロードが関連付けられているサービス・サブクラスのサービス・スーパークラスでは、要求メトリックが作業単位イベント内に存在するためには、その要求メトリックのコレクションを有効にしておく必要があります。 要求メトリック・コレクションが有効になっていないと、要求メトリックの値はゼロになります。
- INCLUDE EXECUTABLE LIST
- 基本レベルのデータと共に作業単位の実行可能 ID リストを収集して作業単位イベント・モニターに送信するように指定します。
- NONE
- このワークロードに関連付けられているトランザクションの作業単位データを作業単位イベント・モニターに送信しないように指定します。
- アクティビティー存続時間ヒストグラム・テンプレート template-name
- このワークロードで特定の間隔で実行中のデータベース・アクティビティーの所要時間 (ミリ秒単位) に関する統計データを収集するために使用されるヒストグラムを記述するテンプレートを指定します。 この時間には、キューに入っていた時間と実行時間の両方が含まれます。 この情報は、COLLECT AGGREGATE ACTIVITY DATA 節と、その BASE または EXTENDED のどちらかのオプションが指定されている場合にのみ収集されます。
- アクティビティー・キュー時間ヒストグラム・テンプレート template-name
- このワークロードで実行中のデータベース・アクティビティーが特定の間隔でキューに入れられている時間 (ミリ秒単位) に関する統計データを収集するために使用されるヒストグラムを記述するテンプレートを指定します。 この情報は、COLLECT AGGREGATE ACTIVITY DATA 節と、その BASE または EXTENDED のどちらかのオプションが指定されている場合にのみ収集されます。
- ACTIVITY EXECUTETIME HISTOGRAM TEMPLATE テンプレート名
- このワークロードで実行中のデータベース・アクティビティーが特定の間隔で実行されている時間 (ミリ秒単位) に関する統計データを収集するために使用されるヒストグラムを記述するテンプレートを指定します。 この時間には、アクティビティーがキューに入っていた時間は含まれません。 アクティビティー実行時間は、コーディネーター・ メンバー でのみ、このヒストグラムで収集されます。 アイドル時間はこの時間に含まれません。 アイドル時間とは、要求が実行されてから同じアクティビティーに属する別の要求が実行されるまでの間、何も作業が実行されていない時間のことです。 アイドル時間の一例として、カーソルのオープンが終了してからカーソルからのフェッチが開始するまでの間の時間があります。 この情報は、COLLECT AGGREGATE ACTIVITY DATA 節と、その BASE または EXTENDED のどちらかのオプションが指定されている場合にのみ収集されます。
- ACTIVITY ESTIMATEDCOST HISTOGRAM TEMPLATE テンプレート名
- このワークロードで実行中の DML アクティビティーの見積コスト (timeron 単位) に関する統計データを収集するために使用されるヒストグラムを記述するテンプレートを指定します。 この情報は、COLLECT AGGREGATE ACTIVITY DATA 節とその EXTENDED オプションが指定されている場合にのみ収集されます。
- ACTIVITY INTERARRIVALTIME HISTOGRAM TEMPLATE テンプレート名
- このワークロード内の 1 つの DML アクティビティーの到着から、このワークロード内の次の DML アクティビティーの到着までの時間 (ミリ秒単位) に関する統計データを収集するために使用されるヒストグラムを記述するテンプレートを指定します。 この情報は、COLLECT AGGREGATE ACTIVITY DATA 節とその EXTENDED オプションが指定されている場合にのみ収集されます。
- UOW 存続時間ヒストグラム・テンプレート template-name
- 特定のインターバルの中で、このワークロードで実行されている作業単位の所要時間 (ミリ秒単位) に関する統計データを収集するために使用されるヒストグラムを記述するテンプレートを指定します。 デフォルトは SYSDEFAULTHISTOGRAM です。 この情報は、COLLECT AGGREGATE UNIT OF WORK DATA 節とその BASE オプションが指定されている場合にのみ収集されます。
ルール
- ワークロード管理 (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)。
注
- 変更はシステム・カタログに書き込まれますが、コミットされるまでは有効になりません。 これは、ステートメントを発行する接続の場合でも当てはまります。 新しくサブミットされるワークロード・オカレンスの場合は、変更は ALTER WORKLOAD ステートメントがコミットされた後に有効になります。 アクティブなワークロード・オカレンスの場合は、変更は次の作業単位の開始時に有効になります。
- 全パーティションを通じて、同時に実行できる非コミットの WLM 排他 SQL ステートメントは 1 つのみです。 非コミットの WLM 排他 SQL ステートメントが実行されている場合、後続の WLM 排他 SQL ステートメントは、現行の WLM 排他 SQL ステートメントがコミットまたはロールバックされるまで待機します。
- DISABLE オプションが指定される場合、ワークロードはステートメントのコミット後に無効になります。 次回ワークロードの選択が行われる際には、このワークロードは考慮されません。 ALTER WORKLOAD ステートメントのコミット時に、このワークロードに関連付けられているアクティブなワークロード・オカレンスが存在する場合、そのワークロード・オカレンスは、現行の作業単位が終了するまで引き続き実行されます。 次の作業単位が開始されるときにワークロードの再評価が行われ、接続は別のワークロードに関連付けられます。
- 特権: ワークロードが作成されるとき、USAGE 特権はどのユーザー、グループ、およびロールにも付与されません。 ワークロードを使用可能にするには、GRANT USAGE ON WORKLOAD ステートメントを使用して、そのワークロードの USAGE 特権を、ユーザー、グループ、またはロールに付与します。
- 代替構文: Db2® の以前のバージョンおよび他のデータベース製品との互換性のために、以下の代替の構文がサポートされています。 これらの代替は非標準であり、使用すべきではありません。
- DB2_ENFORCE_MEMBER_SYNTAX レジストリー変数が ON に設定されている場合を除き、DATABASE PARTITION を MEMBER の代わりに指定できます。
- DB2_ENFORCE_MEMBER_SYNTAX レジストリー変数が ON に設定されている場合を除き、DATABASE PARTITIONS を MEMBERS の代わりに指定できます。
- COLLECT UNIT OF WORK DATA PACKAGE LIST を COLLECT UNIT OF WORK DATA BASE INCLUDE PACKAGE LIST の代わりに指定できます。
例
- 例 1: ワークロード PAYROLL の現在の位置づけでは、実行時にデータベース・マネージャーがワークロードを選択する際、ワークロード INVENTORY が最初に考慮されるようになっています。 評価の順序を変更して、PAYROLL が最初に考慮されるようにします。
ALTER WORKLOAD PAYROLL POSITION BEFORE INVENTORY
- 例 2: データベース・マネージャーがカタログ内の他のワークロードよりも先にワークロード BENCHMARK を評価するように、評価の順序を変更します。
ALTER WORKLOAD BENCHMARK POSITION AT 1
- 例 3: ワークロード REPORTS は、APPLNAME が appl1、 appl2、および appl3に設定され、SYSTEM_USER が BOB および MARY に設定されて作成されました。 このワークロードを変更して、アプリケーション名のリストに新しいアプリケーション appl4 を追加し、REPORTS にマップされなくなった appl2 を除去します。
ALTER WORKLOAD REPORTS ADD APPLNAME ('appl4') DROP APPLNAME ('appl2')
- 例 4: LOCK という名前のロック・イベント・モニターが存在し、アクティブになっていると仮定して、ワークロード APP 内で発生するロック・タイムアウト・イベントのステートメント履歴を使用してロック・イベント・レコードを作成します。
ALTER WORKLOAD APP COLLECT LOCK TIMEOUT DATA WITH HISTORY
- 例 5: LOCK という名前のロック・イベント・モニターが存在し、アクティブになっていると仮定して、全パーティションのワークロード PAYROLL 内で発生するデッドロック・イベントとロック・タイムアウト・イベントだけのロック・イベント・レコードを作成します。
ALTER WORKLOAD PAYROLL COLLECT DEADLOCK DATA COLLECT LOCK TIMEOUT DATA WITHOUT HISTORY
- 例 6: LOCK という名前のロック・イベント・モニターが存在し、アクティブになっていると仮定して、ワークロード INVOICE 内で発生するデッドロック・イベントのステートメント履歴と値を使用してロック・イベント・レコードを作成します。
ALTER WORKLOAD INVOICE COLLECT DEADLOCK DATA WITH HISTORY AND VALUES
- 例 7: LOCK という名前のロック・イベント・モニターが存在し、アクティブになっていると仮定して、ワークロード INVOICE 内で 150 ミリ秒より長く待機した後に獲得されるロックのステートメント履歴と値を使用してロック・イベント・レコードを作成します。
ALTER WORKLOAD INVOICE COLLECT LOCK WAIT DATA FOR LOCKS WAITING MORE THAN 150000 MICROSECONDS WITH HISTORY AND VALUES
- 例 8: ワークロード REPORTS を作業単位データを収集するように変更して、作業単位イベント・モニターに送信します。
ALTER WORKLOAD REPORTS COLLECT UNIT OF WORK DATA BASE