SET CURRENT DEGREE ステートメント

SET CURRENT DEGREE ステートメントは、 CURRENT DEGREE 特殊レジスターに値を割り当てます。

このステートメントは、トランザクションの制御下にありません。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込んだり、動的 SQL ステートメントを使用して発行したりすることができます。 このステートメントは、動的に作成できる実行可能ステートメントです。

許可

必要ありません。

構文

構文図を読む構文図をスキップするSETCURRENTDEGREE=string-constanthost-variable

説明

CURRENT DEGREE の値は、 ストリング定数またはホスト変数の値によって置き換えられます。 値は 5 バイトを超えない文字ストリングでなければなりません。 その値は、1 から 32 767 (両端を含む) の整数の文字ストリング表現、または 'ANY' でなければなりません。

SQL ステートメントが動的に準備される時点で、整数として表現される CURRENT DEGREE の値が 1 である場合には、 そのステートメントの実行にパーティション内並列処理は使用されません。

SQL ステートメントが動的に準備される時点で、CURRENT DEGREE の値が 1 以外の数値である場合には、 そのステートメントの実行には、指定した度合いのパーティション内並列処理を使用できます。

SQL ステートメントが動的に準備される時点で、 CURRENT DEGREE の値が 'ANY' である場合、そのステートメントの実行には、 データベース・マネージャーによって決定された度合いを用いたパーティション内並列処理を使用できます。
host-variable
host-variable (ホスト変数) は、 そのデータ・タイプが CHAR または VARCHAR で、5 文字を超えない長さでなければなりません。 それより長いフィールドを指定すると、エラーになります (SQLSTATE 42815)。 実際に指定する値が、指定した置換値より大きい場合は、 入力の右側にブランクを入れる必要があります。 先行ブランクは使用できません (SQLSTATE 42815)。 すべての入力値は、大文字小文字を区別しないものとして処理されます。 host-variable が標識変数を伴う場合、 その標識変数の値は NULL 値以外でなければなりません (SQLSTATE 42815)。
string-constant
string-constant (ストリング定数) の長さは 5 を超えてはなりません。

  • 静的 SQL ステートメントのパーティション内並列処理の度合いは、 PREP または BIND コマンドの DEGREE オプションを使用して制御できます。
  • パーティション内並列処理の実際の実行時の度合いは、以下のものより小さい値になります。
    • 最大照会度合 (max_querydegree) 構成パラメーター
    • アプリケーション実行時の多重度
    • SQL ステートメントのコンパイルの度合い
  • パーティション内並列処理を使用するには、 intra_parallel データベース・マネージャー構成パラメーターをオンにする必要があります。 オフに設定されている場合、このレジスターの値は無視され、 ステートメントは最適化にパーティション内並列処理を使用しません (SQLSTATE 01623)。
  • CURRENT DEGREE 特殊レジスターの値および intra_parallel 設定値は、ワークロードで MAXIMUM DEGREE ワークロード属性の設定によってオーバーライドされます。
  • Db2_WORKLOAD システム環境変数が ANALYTICS に設定され、ワークロードの MAXIMUM DEGREE が DEFAULT に設定される場合、ワークロードの intra_parallel 設定の値は ON にオーバーライドされます。
  • SQL ステートメントによっては、パーティション内並列処理を使用できません。

  • 例 1: 以下のステートメントは、パーティション内並列処理を禁止する CURRENT DEGREE を設定します。
       SET CURRENT DEGREE = '1'
  • 例 2: 以下のステートメントは、パーティション内並列処理を許可する CURRENT DEGREE を設定します。
       SET CURRENT DEGREE = 'ANY'