QAQQINI 照会オプション

QAQQINI ファイルのパラメーターにはさまざまなオプションを使用できます。

次の表に、QAQQINI コマンドで指定できる照会オプションの要約を示します。

表 1. QAQQINI コマンドに指定される照会オプション
パラメーター 説明
ACTIVE_JOBS

このオプションは、最適化時にアクティブ・ジョブに使用する必要があるものを指定します。 最適化プログラムの適正なメモリー共有を判別する際に、アクティブ・ジョブの数が使用されます。

*DEFAULT 平均アクティブ・ジョブ数が、システム情報に基づいて計算されます。これは推奨される設定です。
整数値 (1 :: 8192)

Query 最適化プログラムで適正なシェアを判別するために使用されるアクティブ・ジョブの数。1 から 8192 までの値を指定します。デフォルト以外の値を指定すると、実際のシステム使用に基づいてメモリーの適正なシェアを使用するプランを最適化プログラムが判別することによるすべてのパフォーマンス上のメリットを享受できない可能性があります。この設定は、主にデバッグや、最適化プログラムの適正なシェアに基づいた照会プランのモデル化で使用されます。

ALLOW_ADAPTIVE_QUERY_PROCESSING

照会に対して適応 QUERY 処理 (AQP) を実行するかどうかを指定します。

適応 QUERY 処理は、ランタイム統計を使用してパフォーマンスの低い照会を見つけ、問題のあるプランを改善されたプランに置き換える可能性があります。

*DEFAULT デフォルト値は、*YES に設定されます。
*YES この照会で適応 QUERY 処理が生じることを許可します。

AQP に影響を与える既存の QAQQINI オプションは、以下のとおりです。

  • REOPTIMIZE_ACCESS_PLAN QAQQINI オプションが *ONLY_REQUIRED に設定されている場合、AQP は元のプランを再最適化しません。 *ONLY_REQUIRED は、機能上の理由がない限り、ユーザーは照会の再最適化を望まないことを示します。 *ONLY_REQUIRED は AQP よりも優先します。
  • FORCE_JOIN_ORDER QAQQINI オプションでユーザーにより指定される結合順序の要求は、AQP よりも優先します。 ユーザーが結合順序で 1 次テーブルを指定した場合、AQP の 1 次推奨は 1 次テーブルの後に配置されます (それらが異なる場合)。
*NO この照会では、適応 QUERY 処理を使用できません。

ALLOW_ARRAY_VALUE_CHANGES

配列要素の値に対する変更を、照会の実行中に照会で表示可能にするかどうかを指定します。

*DEFAULT デフォルト値は、*NO に設定されます。
*NO 照会で参照される配列内の値の変更が、照会をオープンした後には表示されないようにします。

照会で参照できるすべての値は、照会のオープン処理の際にコピーされます。 照会のオープン後に行われる配列の値に対するすべての変更は、表示されません。

結果が予測可能で再生成可能な照会を生成しますが、大きな配列または大きな配列要素を処理する際にはパフォーマンス上のペナルティーが生じることがあります。 配列に対するすべての参照が単純な非列値の場合 (:ARRAY[1]:ARRAY[:hv2] など)、ペナルティーは小さくなります。

ARRAY に索引を付けるためにテーブルからの列値を使用すると、または UNNEST() 関数を使用すると、配列全体のコピーが作成されることになります。 これらのコピーでは、パフォーマンス上のペナルティーが最大になります。

*YES 配列の値に対する変更を、照会の実行中に照会で表示可能にします。 照会のオープン処理の際に、配列はコピーされません。 照会の処理中に配列の値が変更された場合、照会の結果は予測不能になります。

:Array[column-name] などの複合の配列指標の探索操作で大きな配列を参照する照会の場合、または UNNEST を使用するときには、パフォーマンスが改善されることがあります。 大きな配列には、数千の要素を持つ配列や、大きなサイズの要素を持つ配列が含まれます。 :ARRAY[1]:ARRAY[:hv2] など、簡単な索引値を使用する配列指標探索では、パフォーマンスの改善は最小限になります。

一部の照会のパフォーマンスに対しては、負の影響があります。 例えば、再計算を回避するために結果をキャッシュに入れていれば、後の照会でキャッシュに入れられた値が適用可能な場合にそれを再利用できました。

*YES を指定して実行しても予測可能な結果を期待できるプロシージャーには、以下の特性があります。

  1. カーソル宣言を含まない。
  2. 配列を入力パラメーターとして受け取り、
    • そして、SET の左側にある配列を参照する SET ステートメントを含まない。
    • そして、配列を参照する INTO 文節のある SQL ステートメントがない。
  3. セットの左側にある配列を参照する SET ステートメントを含まず、
    • そして、配列を参照する INTO 文節のある SQL ステートメントがなく、配列を参照する照会に対してカーソルが開いている。
ALLOW_EVI_ONLY_ACCESS

コード化ベクトル索引 RRN プローブが最適化プログラムによって検討されるかどうかを指定します。

*DEFAULT デフォルトは、*YES に設定されます。
*YES コード化ベクトル索引 RRN プローブがテーブル・アクセスを置き換えるために最適化プログラムによって検討されるかどうかを指定します。 テーブルでアクセスされるすべての列に EVI が存在していなければなりません。
*NO コード化ベクトル索引 RRN プローブがテーブル・アクセスを置換できません。

ALLOW_TEMPORARY_ INDEXES

一時索引が最適化プログラムによって検討されるかどうかを指定します。 一時索引が許可されない場合は、この照会を実装するためのコストに関係なく、他の任意の実行可能な計画が選択されます。

*DEFAULT デフォルト値は、*YES に設定されます。
*YES 一時索引の考慮を許可します。
*ONLY_ REQUIRED このアクセス・プランではどの一時索引の考慮も許可しません。 一時索引の作成を回避するために、コストに関係なく他のインプリメンテーションを選択します。 実行可能なプランが見つからない場合にのみ、一時索引は許可されます。

APPLY_REMOTE

分散ファイルに関係するデータベース照会のために、CHGQRYA 照会属性がこのジョブに関連するリモート・システム上のジョブに適用されるかどうかを指定します。

*DEFAULT デフォルト値は、*YES に設定されます。
*NO ジョブの CHGQRYA 属性は、リモート・ジョブには適用されません。 リモート・ジョブは、リモート・システムでリモート・ジョブに関連する属性を使用します。
*YES ジョブの照会属性は、分散テーブルが関与するデータベース照会に処理に使用されるリモート・ジョブに適用されます。 *SYSVAL が指定されている属性の場合、リモート・システム上のシステム値は、そのリモート・ジョブ用に使用されます。 CHGQRYA がこのジョブで使用されていた場合、このオプションは、リモート・ジョブが CHGQRYAコマンドを使用する権限を持っていることを要求します。

ASYNC_JOB_USAGE

ジョブ内のデータベース照会の処理に役立つように非同期 (一時書き出しプログラム) ジョブを使用できる環境を指定します。 オプションは、照会を完了する際に役立つように非同期ジョブ (並列して実行中の) で使用できるデータベース照会のタイプを決定します。

非同期ジョブは、システムでデータベース照会を実行中のジョブから照会要求を処理する別個のジョブです。 非同期ジョブは、各要求を処理し、結果を一時ファイルに書き出します。 この中間一時ファイルは、次にデータベース照会を完了させるためにメイン・ジョブによって使用されます。

非同期ジョブの利点は、メイン・ジョブが照会の別のステップを処理するのと同時に (並列して) 要求を処理する点にあります。 非同期ジョブを使用する欠点は、メイン・ジョブと同じ方法で処理できない状態が発生する可能性がある点です。例えば、非同期ジョブは、取り消すことになる照会メッセージを受け取る場合がありますが、メイン・ジョブではそのメッセージを無視して続行することを選択できます。

非同期ジョブを実行できるデータベース照会には、次の 2 つの異なるタイプがあります。

  1. 分散照会。 これらは、分散ファイルが関係するデータベース照会です。 分散ファイルは、IBM® i 用のシステム・フィーチャー Db2® マルチシステムを通して提供されます。
  2. ローカル照会。 データベース照会を実行中のシステムにローカルなファイルだけが関与するデータベース照会があります。
*DEFAULT デフォルト値は、*LOCAL に設定されます。
*LOCAL 非同期ジョブは、データベース照会を実行中のシステムにローカルなテーブルだけが関与するデータベース照会に使用することができます。

さらに、このオプションを使用すると、分散テーブルが関与する照会で必要な通信方式を非同期にすることができます。 分散テーブルの照会に関与する各システムは、照会の分散テーブルに関与する部分を同時に (並列に) 実行することができます。

*DIST 非同期ジョブは、分散テーブルが関与するデータベース照会に使用することができます。
*ANY 非同期ジョブは、すべてのデータベース照会に使用することができます。
*NONE 非同期ジョブは、データベース照会処理には使用できません。 なおその上に、分散テーブルが関与する照会のすべての処理は、同期的に発生します。 したがって、システム間での並列処理は、起こりません。

CACHE_RESULTS

ユーザーがキャッシュ結果処理を制御するための方法を指定します。 ソートやハッシュなどの一時結果が関係する照会の場合、データベース・マネージャーが、照会の疑似クローズ / 疑似オープンを通して結果を保管することがしばしばあります。 それらの結果は、大きくない限り、照会の次の実行で結果が再使用されることを期待して保管されます。 V5R3 からは、ジョブが処理を完了した後もデータベース・マネージャーはこれらの一時結果を保管するようになりました。 データベース・マネージャーは、別のジョブが後で結果を再使用することを想定します。

データベース・マネージャーはこれらの結果のキャッシングを自動的に制御し、記憶域の使用量が大きくなるため、キャッシュ結果を除去します。ただし、データベースが使用する一時記憶域は、従来のリリースより大幅に大きくなる可能性があります。

*DEFAULT デフォルト値は *SYSTEM と同じです。
*SYSTEM データベース・マネージャーは照会結果セットをキャッシュに入れることができます。そのジョブによるその後の照会の実行は、キャッシュに入れられた結果セットを再利用できます。 または、照会の ODP が削除された場合は、キャッシュに入れられた結果セットを任意のジョブが再利用できます。

多くの場合、このオプションは適切に機能します。ただし、データベース・マネージャーの外部で照会が処理を実行していて、一時結果に影響を与える可能性があるかどうかを考慮する必要があります。該当する場合は、*JOB または *NONE が、より適切な設定であることがあります。例えば、データをマスクするフィールド・プロシージャーが使用されているか、UDF でのユーザー・プロファイルのスワッピングが発生する可能性がある場合、このオプションでは *NONE を指定する必要があります。

*JOB データベース・マネージャーは 1 つのジョブの実行から次の実行まで、照会結果セットをキャッシュに入れることができます。照会が再使用可能な ODP を使用している限り、キャッシングが生じることが可能です。 再使用可能 ODP が削除されると、キャッシュに入れられた結果セットは破棄されます。 この値は V5R2 の処理に似ています。
*NONE データベースはどの照会結果もキャッシュにいれません。

COLLATE_ERRORS

照会内でのハッシュまたはソート処理の際に、GROUP BY および ORDER BY 式でデータ・エラーが処理される方法を指定します。

*DEFAULT デフォルト値は *NO です。
*NO 値の *NO を指定すると、グループ化または順序付けの式の結果がエラーになるとき、照会がエラーで終わります。
*YES 値の *YES は、グループ化またはソートが続行することを示します。

COMMITMENT_CONTROL_ LOCK_LIMIT

新しい値の設定後に開始されたコミット・トランザクションにロックできるレコードの最大数を指定します。

COMMITMENT_CONTROL _LOCK_LIMIT に対して指定された値は、既にコミットメント制御を開始済みのジョブで実行中のトランザクションに影響を及ぼしません。 値を有効にするには、コミットメント制御を開始する前に変更する必要があります。

*DEFAULT *DEFAULT は 500,000,000 と同等です。

トランザクションに複数のジャーナルが関係する場合、COMMITMENT_CONTROL _LOCK_LIMIT は、全体としてトランザクションではなく、各ジャーナルに適用されます。

例えば、ファイル F1 から F5 までがジャーナル J1 に、そしてファイル F6 から F10 が J2 にジャーナル処理されるとします。 COMMITMENT_CONTROL _LOCK_LIMIT は 100,000 に設定されます。 ファイル F1 から F5 までに対しては 100,000 個のレコード・ロックを獲得できます。 ファイル F6 から F10 までに対してはさらに 100,000 個のレコード・ロックを獲得できます。

整数値 新しい値の設定後に開始されたコミット・トランザクションにロックできるレコードの最大数。

有効な整数値は 1 から 500,000,000 です。

CONCURRENT_ACCESS_BEHAVIOR

分離レベルがカーソル固定 (CS) または読み取り固定 (RS) の照会がコミットされていないテーブルの変更とどのように対話するのかを制御します。

*DEFAULT デフォルト値は *OPTIMIZE です。
*OPTIMIZE

レコードを削除または更新して照会で選択されなくなるようにする、コミットされていない変更は、照会同期の候補と見なされません。

*STRICTSCAN

テーブル走査照会アクセス・プランで参照されているすべてのレコードが、まだコミットされていないすべての変更と同期します。シリアライゼーションの動作は、照会によって使用される並行アクセス解決に依存します (例えば、SKIP LOCKED DATA、USE CURRENTLY COMMITTED、WAIT FOR OUTCOME (デフォルト))。テーブル走査は削除済みおよび非選択レコードのすべての保留中のトランザクションをシリアライズしようとするため、*OPTIMIZE と比べると照会パフォーマンスが低下します。照会に多くのアクセス・プラン・タイプが含まれる可能性がありますが、このオプションはテーブル走査アクセスに対してのみ、サポートされます。他のすべてのプラン・タイプでは、*OPTIMIZE の動作が使用されます。

DETERMINISTIC_UDF_SCOPE

ユーザー定義関数 (UDF) およびユーザー定義表定義 (UDTF) の決定論的な設定の有効範囲または存続時間を指定します。

照会オープンの単一インスタンスで決定論的と見なす必要がある CREATE FUNCTION ステートメントに対しては、*OPEN オプションを使用するのではなく、STATEMENT DETERMINISTIC を指定することをお勧めします。この QAQQINI オプションが有効である間は、DETERMINISTIC_UDF_SCOPE は、すべての照会のすべての決定論的な UDF および UDTF に適用されます。

*DEFAULT デフォルト値は *ALWAYS です。
*ALWAYS UDF は常に決定論的なものとして扱われます。 照会の一時オブジェクトは照会オープンの間で共有されることがあり、UDF は特定の照会オープンに対して実行しないことがあります。
*OPEN UDF は照会オープンの単一インスタンスに対してのみ決定論的とみなされます。 照会一時オブジェクトは、照会オープン間で共有されません。 UDF は 1 つの入力パラメーターのセットに対して照会内で少なくとも 1 回実行されます。

FIELDPROC_ENCODED_COMPARISON

照会対象の列にフィールド・プロシージャーが付加されているときに、最適化プログラムが使用できる最適化の量を指定します。

*DEFAULT デフォルト値は *ALLOW_EQUAL です。
*NONE フィールド・プロシージャー・デコード・オプション 4 を除去する最適化、またはフィールド・プロシージャーの呼び出しを最適化するための変換は、許可されません。 例えば、最適化プログラムは fieldProc(4, column) = ‘literal'column = fieldProc(0,‘literal') に変換できません。 このオプションは、フィールド・プロシージャーが決定論的ではないときに使用されます。

*ALLOW_
EQUAL

等価および不等価の述部、GROUP BY、および DISTINCT 処理に対して、最適化が許可されます。 例えば、最適化プログラムは索引マッチングを容易にするために、述部 fieldProc(4, column) = ‘literal'column = fieldProc(0,‘literal') に変更することを選択する可能性があります。 このオプションは、フィールド・プロシージャーが決定論的であり、フィールド・エンコードの結果に基づいて順序付けを決定できないときに役立ちます。

*ALLOW_
RANGE

*ALLOW_EQUAL でサポートされる変換に加えて、MIN、MAX グループ化関数、ORDER BY、およびすべての述部 (LIKE を除く) で、変換が許可されます。 このオプションは、フィールド・プロシージャーが決定論的であり、エンコード値が順序付けを暗黙に示すときに役立ちます。
*ALL *ALLOW_RANGE でサポートされる変換に加えて、LIKE を含むすべての述部で、変換が許可されます。

FORCE_JOIN_ORDER

照会で指定された順序でファイルの結合が発生する Query 最適化プログラムに指定します。

*DEFAULT デフォルトは *NO に設定されます。
*NO 最適化プログラムによる結合テーブルの再順序付けを許可します。
*SQL SQL JOIN 構文を使用する照会の結合順序を強制するだけです。 このオプションは、V4R4M0 より前の最適化プログラムの動作に似ています。

*PRIMARY
nnn

数値 nnn によってリストされるファイルの結合位置を、結合の基本の位置 (またはダイヤル) に強制するだけです。nnn はオプションで、デフォルトは 1 です。 その後、最適化プログラムは残りのすべてのファイルの結合順序をコストに基づいて決めます。
*YES Query 最適化プログラムが、その最適化プロセスの一部として結合テーブルの順序を指定することを許可しません。 結合は、照会内で指定されたテーブルの順序で行われます。

IGNORE_LIKE_ REDUNDANT_SHIFTS

SQL LIKE 述部あるいは OPNQRYF コマンドの %WLDCRD 組み込み関数を処理するとき、DBCS 混用オペランドの冗長シフト文字を無視するかどうかを指定します。

*DEFAULT デフォルト値は、*OPTIMIZE に設定されます。
*ALWAYS SQL LIKE 述部あるいは OPNQRYF コマンドの %WLDCRD 組み込み関数を処理するとき、DBCS 混用オペランドの冗長シフト文字が無視されます。 最適化プログラムは、DBCS 混用、DBCS 択一、あるいは DBCS 専用オペランドを含む SQL LIKE 述部あるいは OPNQRYF %WLDCRD 述部で、索引を使ってキー行の位置決めを実行することはできません。
*OPTIMIZE SQL LIKE 述部あるいは OPNQRYF コマンドの %WLDCRD 組み込み関数を処理するとき、DBCS 混用オペランドの冗長シフト文字が無視されます。これらの述部のキー行位置決めに索引が使用されるかどうかにより、これらの文字は無視されることがあります。 このオプションを指定すると、Query 最適化プログラムは、DBCS 混用、DBCS 択一、あるいは DBCS 専用オペランドを含む SQL LIKE 述部あるいは OPNQRYF %WLDCRD 述部で、キー行位置決めを考慮できるようになります。
KEY_RANGE_ESTIMATE_TIMEOUT

Query 最適化プログラムが個別キー範囲推定操作で使用する可能性がある時間を指定します。キー範囲推定は、特定の述部の行数を見積もるために索引とともに使用されます。このオプションは、照会で最適化が完了するまで待機する時間を短縮するのに役立つことがあります。

*DEFAULT デフォルト値は *OPTIMIZE です。
*OPTIMIZE キー範囲推定操作に使用される時間は、Query 最適化プログラムによって判別されます。
*NONE キー範囲推定操作に対する時間制限は指定されず、必要な時間に関係なく、すべての推定が完了するまで実行されます。これは IBM i 7.3 より前のリリースでの Query 最適化プログラムの動作です。
整数値

キー範囲推定操作が Query 最適化プログラムに推定を返すまでに実行される秒数。この時間間隔が終わると、最適化プログラムは照会の最適化を再開し、推定操作はバックグラウンド・プロセスで続行されます。値が小さいほど、最適化時間は短縮する可能性がありますが、最適化プログラムで使用される推定の正確性が低下する可能性もあります。

有効な値は 1 から 86400 です。

LIMIT_PREDICATE_ OPTIMIZATION

索引の最適化を実行する際に、Query 最適化プログラムが単純な分離可能な述部 (OIF) のみを使用するように指定します。

OIF は、追加の評価のないレコードを除去できる述部です。 OIF として分類できない述部は、最適化プログラムによって無視され、キーなし選択述部として評価される必要があります。

A=10 および (A=>10 AND B=9) は、OIF です。

A=10 OR B=9 は、OIF ではありません。

注: *YES の場合、索引の最適化が損なわれるか制限されます。

*DEFAULT 索引の最適化を行うときに、単純な分離可能な述部 (OIF) ではない述部を除去しません。 *NO と同じです。
*NO 索引の最適化を行うときに、単純な分離可能な述部 (OIF) ではない述部を除去しません。
*YES 索引の最適化を行うときに、単純な分離可能な述部 (OIF) ではない述部を除去します。

LOB_LOCATOR_THRESHOLD

*DEFAULT または整数値 (ジョブ内に存在する適格な LOB ロケーターを解放するしきい値) を指定します。

*DEFAULT デフォルト値は 0 に設定されます。 このオプションは、データベースがロケーターを解放しないことを示します。
整数値 値が 0 の場合には、データベースはロケーターを解放しません。 値が 1 から 250,000 の場合には、FETCH 要求に対して、データベースはジョブの SQL 現行 LOB ロケーター・カウントをしきい値と比較します。ロケーター・カウントがしきい値以上の場合には、ホスト・サーバーが作成した、検索されたロケーターをデータベースは解放します。このオプションは、すべてのホスト・サーバー・ジョブ (QZDASOINIT) に適用され、他のジョブには影響を与えません。

MATERIALIZED_QUERY_ TABLE_REFRESH_AGE

照会最適化および実行時におけるマテリアライズ照会表の使用法を指定します。

*DEFAULT デフォルト値は、0 に設定されます。
0 マテリアライズ照会表は使用できません。
*ANY MATERIALIZED_QUERY_TABLE_USAGE INI パラメーターの指すテーブルがあれば、それらはすべて使用可能です。

Timestamp_
duration

MATERIALIZED_ QUERY_TABLE_USAGE INI オプションの指すテーブルのうち、指定するタイム・スタンプ期間内に REFRESH TABLE が実行されたことのあるものだけを使用できます。

MATERIALIZED_QUERY_ TABLE_USAGE

最後に REFRESH TABLE ステートメントが実行された時刻に基づいて、使用に適格なマテリアライズ照会表を検査する機能を指定します。

*DEFAULT デフォルト値は、*NONE に設定されます。
*NONE 照会の最適化およびインプリメンテーションで、マテリアライズ照会表を使用することはできません。
*ALL ユーザーの保守するマテリアライズ照会表を使用できます。
*USER ユーザーの保守するマテリアライズ照会表を使用できます。

MEMORY_POOL_PREFERENCE

データベース操作が優先的に使用するメモリー・プールを指定します。 このオプションは指定されたプールの使用を保証しませんが、データベース操作によってサポートされるときに、データベースがこのプールにページングを実行するようにします。

*DEFAULT デフォルト値は、*JOB に設定されます。
*JOB ページングは、ジョブのプールで行われます。 このオプションは、通常のページング動作です。
*BASE ページングが必要で、ターゲットのページングをサポートするデータベース操作が生じたときに、ストレージを基本プールにページングすることを試行します。
nn ページングが必要で、ターゲットのページングをサポートするデータベース操作が生じたときに、ストレージをプール nn にページングすることを試行します。
*NAME PoolName ページングが必要で、ターゲットのページングをサポートするデータベース操作が生じたときに、ストレージを指定ストレージ・プールにページングすることを試行します。
*PRIVATE Library/Subsystem/PoolNumber ページングが必要で、ターゲットのページングをサポートするデータベース操作が生じたときに、ストレージを、指定ライブラリーおよびサブシステム内の専用ストレージ・プールにページングすることを試行します。

MESSAGES_DEBUG

Query 最適化プログラムのデバッグ・メッセージを、ジョブ・ログに表示するかどうかを指定します。 これらのメッセージは、通常はジョブがデバッグ・モードの場合に発行されます。

*DEFAULT デフォルトは *NO に設定されます。
*NO 表示されるデバッグ・メッセージはありません。
*YES STRDBG に対して生成されるすべてのデバッグ・メッセージを実行します。

NORMALIZE_DATA

Unicode 定数、ホスト変数、パラメーター・マーカー、およびストリングを結合する式の正規化を実行するかどうかを指定します。

*DEFAULT デフォルトは *NO に設定されます。
*NO ユニコード定数、ホスト変数、パラメーター・マーカー、およびストリングを結合する式は正規化されません。
*YES ユニコード定数、ホスト変数、パラメーター・マーカー、およびストリングを結合する式は正規化されます。

OPEN_CURSOR_CLOSE_ COUNT

*DEFAULT または整数値 (しきい値に達した際に完全にクローズされるカーソルの数) を指定します。

*DEFAULT *DEFAULT は 0 と同等です。詳細については『整数値』を参照してください。
整数値

この値は、クローズするカーソルの数を決定します。 このパラメーターの有効な値は 1 から 65536 です。このパラメーターの値は、OPEN_CURSOR_THREHOLD パラメーターの数値以下でなければなりません。

オープン・カーソルの数が、OPEN_CURSOR_THRESHOLD で指定された値に達すると、疑似クローズされたカーソルがハード・クローズ (完全にクローズ) されます。 使用された時期の古いカーソルから順に閉じられます。

OPEN_CURSOR_THRESHOLD が *DEFAULT である場合には、この値は無視されます。 OPEN_CURSOR_THRESHOLD が指定されており、値が *DEFAULT の場合、閉じられるカーソルの数は、OPEN_CURSOR_THRESHOLD に 10 % を乗算した値に等しくなります。 結果は、次の整数値に切り上げられます。

OPEN_CURSOR_CLOSE_COUNT は OPEN_CURSOR_THRESHOLD に使用され、ジョブ内のオープン・カーソルの数を管理します。オープン・カーソルには、疑似クローズされたカーソルが含まれます。

OPEN_CURSOR_ THRESHOLD

*DEFAULT または整数値 (疑似クローズされたカーソルの完全クローズを開始するしきい値) を指定します。

*DEFAULT *DEFAULT は 0 と同等です。詳細については『整数値』を参照してください。
整数値

この値は、疑似クローズされたカーソルの完全クローズを開始するしきい値を決めます。 オープン・カーソルの数がこのしきい値に達すると、疑似クローズされたカーソルがハード・クローズ (完全にクローズ) されます。 使用された時期の古いカーソルから順に閉じられます。 クローズされるカーソルの数は、OPEN_CURSOR_CLOSE_COUNT により決定されます。

ユーザーが入力できるこのパラメーターの有効な値は 1 から 65536 です。 デフォルト値の 0 は、しきい値がないことを示します。 ジョブ内のオープン・カーソルの数に基づいて、ハード・クローズが強制されることはありません。

OPEN_CURSOR_THRESHOLD は OPEN_CURSOR_CLOSE_COUNT に使用され、ジョブ内のオープン・カーソルの数を管理します。オープン・カーソルには、 疑似クローズされたカーソルが含まれます。

OPTIMIZATION_GOAL

Query 最適化プログラムがコスト計算を決定する際に使用する目標を指定します。

*DEFAULT 最適化の目標は、インターフェース (ODBC、SQL プリコンパイラー・オプション、OPTIMIZE FOR nnn ROWS 文節) によって決定されます。
*FIRSTIO すべての照会は、出力の最初のページをできるだけ早く戻すという目標で最適化されます。このオプションは、データの最初のページを見ただけで照会を取り消す可能性があるユーザーが、出力を制御する場合に適しています。 OPTIMIZE FOR nnn ROWS 文節でコード化された照会は、文節によって指定される目標を実行します。
*ALLIO すべての照会は、最短の経過時間で全体の照会の実行を完了するという目標で最適化されます。このオプションは、ファイルまたはレポートに照会の出力を書き込む場合や、インターフェースが出力データを待ち行列に入れる場合に適しています。 OPTIMIZE FOR nnn ROWS 文節でコード化された照会は、文節によって指定される目標を実行します。

OPTIMIZE_STATISTIC_ LIMITATION

Query 最適化プログラムの統計収集フェーズの制限を指定します。

照会最適化で最も時間を要する側面の 1 つが、照会済みのテーブルに関連する索引からの統計収集です。一般に、照会に関係するテーブルのサイズが大きいほど、統計の収集フェーズにより長い時間を要します。

このオプションは、最適化のこのフェーズ中に消費されるリソースの量を制限する機能を提供します。 統計収集に消費されるリソースが大きいほど、最適化計画はより正確 (最適) になります。

*DEFAULT 索引統計の収集に要した総量は、Query 最適化プログラムによって判別されます。
*NO 索引統計は、Query 最適化プログラムによっては収集されません。デフォルト統計が最適化に使用されます。(このオプションは控えめに使用してください。)

*PERCENTAGE
整数値

統計の収集中に探索される索引の最大のパーセントを指定します。有効な値は 1 から 99 です。

*MAX_
NUMBER_OF_
RECORDS_
ALLOWED
整数値

最大テーブル・サイズを統計の収集で使用できる行数で指定します。 指定値よりも多くの行を指定したテーブルの場合、最適化プログラムは、統計の収集を行わず、デフォルト値を使用します。

PARALLEL_DEGREE

ジョブ内でデータベース照会、データベース・ファイル・キー順アクセス・パスの作成、再作成、および保守を実行中に使用できる並列処理オプションを指定します。 指定された並列処理オプションは、許可される並列処理のタイプを決定します。 並列処理には以下の 2 つのタイプがあります。
  1. 入出力 (I/O) 並列処理。 入出力並列処理では、データベース・マネージャーは、照会ごとに複数のタスクを使用して、入出力処理を実行します。 中央処理装置 (CPU) 処理は引き続き、順次に実行されます。
  2. 対称型マルチプロセッシング (SMP)。 SMP は、CPU および入出力処理の両方を、並列して照会を実行するタスクに割り当てます。実際の CPU 並列処理には、複数のプロセッサーを持つシステムが必要です。 SMP は、システム・フィーチャーの Db2 Symmetric Multiprocessing がインストール済みの場合にのみ使用できます。 SMP 並列処理の使用は、レコードが戻される順序に影響を及ぼす可能性があります。
*DEFAULT デフォルト値は *SYSVAL です。
*SYSVAL 現行システム値 QQRYDEGREE に設定します。
*IO 任意の数のタスクを使用できます。 SMP 並列処理は許可されません。
*OPTIMIZE 以下を行うための任意の数のタスク:
  • 照会の入出力並列処理または SMP 並列処理
  • データベース・ファイル・キー順アクセス・パス構築、再構築、または保守
SMP 並列処理は、システム・フィーチャーの Db2 Symmetric Multiprocessing (IBM i 用) がインストール済みの場合にのみ、使用されます。

並列処理の使用、および使用されるタスクの数は、以下によって決まります。

  • システムで使用可能なプロセッサーの数
  • ジョブが実行されるプール内で使用可能なアクティブ・メモリーの量のジョブ・シェア
  • 照会またはデータベース・ファイル・キー順アクセス・パス構築または再構築に予期される経過時間が CPU 処理または入出力リソースにより制限されるかどうか

Query 最適化プログラムはジョブがプール内の記憶域を共用することに基づいて経過時間の最小化を実施します。

*OPTIMIZE
nnn

1 から 200 のパーセンテージを示す値 nnn を指定して、*OPTIMIZE と同様にタスクの数に影響を与えるために使用します。 指定しない場合、100 が使用されます。

Query 最適化プログラムは *OPTIMIZE について実行されるのと同じ処理を使用して、照会の並列度を決定します。いったん決定されたら、最適化プログラムは照会で使用される実際の並列度を、指定されたパーセンテージ分調整します。

ユーザーは、使用される並行度を、*NUMBER_OF_TASKS の下に特定の並列度を指定せずにオーバーライドできます。

nnn Query 最適化プログラムは、照会を処理するために入出力並列処理または SMP 並列処理の使用を選択します。 SMP 並列処理は、システム・フィーチャーの Db2 Symmetric Multiprocessing (IBM i 用) がインストール済みの場合にのみ、使用されます。

nnn は 1 から 200 のパーセンテージで、タスクの数に影響を与えるために使用します。 指定しない場合、100 が使用されます。

Query 最適化プログラムが行う選択は、*OPTIMIZE パラメーター値が行う選択と類似しています。 例外は、すべてのプール・アクティブ・メモリーが、照会の処理、データベース・ファイル・キー順アクセス・パス構築、再構築、または保守のために使用可能であると想定していることです。

PARALLEL_DEGREE (続き) *NONE データベース照会処理またはデータベース・テーブル索引構築、再構築、または保守に並列処理は許可されません。

*NUMBER_
OF _TASKS
nnn

単一の照会で使用できるタスクの最大回数を指示します。 この値まで、またはテーブルに関連付けられたディスク・アームの数までに、タスクの回数は制限されます。

SQE を実行する場合には推奨されていません。 SQE 最適化プログラムはこの度数を使用して、通常のコスト計算メカニズムの多くをオーバーライドします。 SQE では、パーセンテージを指定した *OPTIMIZE を使用します。

*MAX xxx *MAX と類似していて、1 から 200 の間の整数のパーセンテージ値を指定できることを示す値 xxx があります。 Query 最適化プログラムは *MAX について実行されるのと同じ処理を使用して、照会の並列度を決定します。 いったん決定されたら、最適化プログラムは照会で使用される実際の並列度を、指定されたパーセンテージ分調整します。このオプションはユーザーが、使用される並行度をある程度、*NUMBER_OF_TASKS の下に特定の並列度を指定せずにオーバーライドできます。

PARAMETER_MARKER_ CONVERSION

リテラルがパラメーター・マーカーとして動的 SQL 照会に実装されることを許可するかどうかを指定します。

*DEFAULT デフォルト値は、*YES に設定されます。
*NO 定数は、パラメーター・マーカーとして設定することはできません。
*YES パラメーター・マーカーとして定数を設定することができます。

PREVENT_ADDITIONAL_CONFLICTING_LOCKS

以下の SQL DDL ステートメントでは、ターゲット・テーブルでの読み取りなし排他ロックを必要とします。アプリケーション・アクティビティーを静止できない場合、これらの操作を実行するのは困難な可能性があります。

PREVENT_ADDITIONAL_CONFLICTING_LOCKS QAQQINI オプションは、読み取りのためにオブジェクトをロックする新規要求よりも読み取りなし占有ロックの要求を優先するようにオペレーティング・システムに指示するためにお客様が使用する制御を提供します。

*DEFAULT デフォルト値は、*NO に設定されます。
*NO

ジョブがオブジェクトに対する排他ロックを要求 した場合、並行ジョブによる、そのオブジェクトでの追加ロックの取得を妨げないようにしてください。

*YES

*YES を選択した場合、このようなより低レベルの読み取りロックの新規要求は、排他ロック要求よりも後回しにされ、アプリケーションでは、テーブルが照会に使用できないという状況が発生する可能性があります。

  • ALTER TABLE (列の追加、変更、またはドロップ)
  • CREATE TRIGGER
  • LOCK TABLE
  • RENAME TABLE

PSEUDO_OPEN_CHECK_HOST_VARS

このオプションは、SQE が疑似オープン時のホスト変数値の選択度を検査できるようにするために使用できます。より適切な実行のためにホスト変数値の新規セットが異なるプランを必要とする場合、SQE は照会を再最適化します。

このオプションは、照会述部のホスト変数の選択度にかなりのばらつきがある場合に最も適切です。

*DEFAULT デフォルト値は、*NO に設定されます。
*NO 最適化プログラムは、一度疑似オープンになったホスト変数の選択度変更を検査しません。
*OPTIMIZE 最適化プログラムは、いつホスト変数選択度を検査するべきかを判断します。一般に、最適化プログラムは照会をモニターし、特定数の実行の後で、疑似オープン時のホスト変数選択度を検査する利点がないと判断すると、検査を停止します。完全オープンでは通常のプラン妥当性検査を行います。
*YES 最適化プログラムは常に、疑似オープン時のホスト変数選択度を検査します。
注: REOPTIMIZE_ACCESS_PLAN INI オプションが *ONLY_REQUIRED に設定されている場合、この INI オプションは無効です。

QUERY_TIME_LIMIT

照会で処理が必要な見積もり経過秒数に基づいて、開始が許可されるデータベース照会の制限時間を指定します。

*DEFAULT デフォルト値は、*SYSVAL に設定されます。
*SYSVAL このジョブの照会時間制限は、システム値、QQRYTIMLMT から取得されます。
*NOMAX 見積経過秒数の最大数はありません。
整数値 照会を実行するために必要な経過時間の見積秒数に対してチェックされる最大値を指定します。 見積経過秒数がこの値よりも大きい場合、照会は開始されません。有効な値は、0 から 2,147,352,578 の範囲です。

REOPTIMIZE_ACCESS_PLAN

Query 最適化プログラムが、保管されたアクセス・プランを使用して照会を再び最適化するかどうかを指定します。

照会は保管済みアクセス・プランを、HLL プログラムの関連記憶域内、または最適化プログラム自体によって管理されるプラン・キャッシュ内に持つことができます。

注: *NO を指定すれば、照会は、引き続き、再び妥当性検査されます。

この指定が必要な理由として、以下が考えられます。

  • 照会されたファイルは削除されて再作成された。
  • 照会が、作成時のシステムとは異なるシステムにリストアされた。
  • OVRDBF コマンドが使用された。
*DEFAULT デフォルト値は、*NO に設定されます。
*NO 既存の照会への再度の最適化は強制しません。 ただし、最適化プログラムが最適化が必要であると判断すれば、照会では最適化が実行されます。
*YES 既存の照会への再度の最適化を強制します。
*FORCE 既存の照会への再度の最適化を強制します。

*ONLY_
REQUIRED

実体のない理由で、プランが再び最適化されないようにします。 このような場合、既存のプランは依然として有効な作業可能プランであるため、その使用を継続します。 これは、再度の最適化を実行した場合のパフォーマンス上の利点をすべて受けられるわけではないことを意味する場合もあります。実体のない理由には、ファイル・サイズの変更、新しい索引などが含まれます。実体のある理由には、既存のアクセス・プランによって使用されている索引の削除、照会ファイルの削除および再作成などが含まれます。

SQE_NATIVE_ACCESS_POSITION_BEHAVIOR

このオプションは、SQE により実施されたネイティブ・オープンまたは照会の位置決め動作を制御します。*DEFAULT 以外のオプションを指定することにより、パフォーマンス上のメリットが実現することがあります。

*DEFAULT 通常の位置決め動作が実行されます。

*NO_ROLLBACK
_HOLD

ロールバックによって現行カーソル位置が変更されません。

*NO_KEY_
FAILURE_HOLD

試行されたキー位置決め操作が失敗した場合、試行された操作の前のカーソル位置は復元されません。相対的位置付け操作 (次または前など) の前には、別の絶対位置決め操作 (最初、最後、または等しいキーなど) が試行されることが前提となります。

*NO_HOLD

動作は *NO_ROLLBACK_HOLD および *NO_KEY_FAILURE_HOLD 値に定義されたものと同じです。

SQLSTANDARDS_MIXED_ CONSTANT

SQL 照会で、IGC 定数を常に IGC-OPEN として処理することが可能かどうかを指定します。

注: *NO が指定された場合、Db2 for i は、他の Db2 プラットフォームとは互換性がありません。
*DEFAULT デフォルト値は、*YES に設定されます。
*YES SQL IGC 定数は、IGC 混用定数として扱われます。
*NO IGC 定数のデータがシフトアウトと DBCS データとシフトインだけの場合、その定数は IGC 専用として扱われます。それ以外の場合は IGC 混用として扱われます。

SQL_CONCURRENT_ACCESS_RESOLUTION

SQL 照会で使用する並行アクセス・レゾリューションを指定します。

*DEFAULT デフォルト値は、*WAIT に設定されます。
*WAIT データベース・マネージャーは、更新、削除、または挿入の処理中のデータを検出したとき、コミットまたはロールバックを待機する必要があります。 挿入の処理中の行が検出された場合、それはスキップされません。 このオプションは、有効な分離レベルがカーソル固定または読み取り固定であるときに可能であれば適用され、その他の場合には無視されます。
*CURCMT データベース・マネージャーは、現在コミットされているバージョンのデータが更新中または削除中の場合に、それを読み取り専用のスキャンに使用できます。 挿入の処理中の行は、スキップできます。 このオプションは、有効な分離レベルがカーソル固定であるときに可能であれば適用され、その他の場合には無視されます。

SQL_DECFLOAT_WARNINGS

SQL DECFLOAT 計算および変換に対して戻される警告を指定します。 これには、以下が含まれます。
  • 0 による除算。
  • オーバーフロー。
  • アンダーフロー。
  • 無効なオペランド。
  • 不正確な結果。
*DEFAULT デフォルト値は、*NO に設定されます。
*YES 0 による除算、オーバーフロー、アンダーフロー、無効なオペランド、不正確な結果、または正常以下の数値が関係する DECFLOAT 計算および変換に関して、呼び出し元に警告が戻されます。
*NO

0 による除算、オーバーフロー、アンダーフロー、
または無効なオペランドが関係する DECFLOAT
計算および変換に関して、呼び出し元に
エラーまたはマッピング・エラーが戻されます。

不正確な結果または正常以下の数値の場合、警告またはエラーは戻されません。

SQL_FAST_DELETE_ ROW_COUNT

データベース・マネージャーによって削除が実装される方法を指定します。 この値は、WHERE 文節なしで DELETE FROM テーブル名 SQL ステートメントを処理する際に使用されます。

*DEFAULT デフォルト値は、0 に設定されます。

0 は、従来の削除の代わりに高速削除を使用できるかどうかを決定する際に、データベース・マネージャーが考慮する行の数を選択することを示します。

デフォルト値を使用する場合、データベース・マネージャーは行数として 1000 行使用するでしょう。 これは、値 1000 の INI オプションを使用しても、オプションに 0 を使用するときと比べて操作上の差は生じないことを意味します。

*NONE この値は、行に対して高速削除を試行しないようデータベース・マネージャーに強制します。
*OPTIMIZE この値は *DEFAULT の使用と同じです。
整数値 このオプションに値を指定すると、ユーザーは DELETE の動作を調整することができます。 高速削除を試行するには、DELETE ステートメントのターゲット・テーブルが、オプションで指定された行の数と一致するかまたは超過していなければなりません。高速削除は個々の行をジャーナルに書き込みません。

有効な値は、1 から 999,999,999,999,999 です。

SQL_GVAR_BUILD_RULE

SQL ルーチンの作成または SQL プリコンパイルの実行時に、グローバル変数が存在する必要があるかどうかを決定します。

このオプションは、動的 SQL ステートメントには影響しません。

*DEFAUT デフォルト値は *DEFER に設定されています。
*DEFER SQL ルーチンの作成時または SQL プリコンパイラーの実行時に、グローバル変数が存在する必要はありません。グローバル変数が存在する必要がないため、正しくない列名やルーチン変数が検出されても、作成が失敗しません。正しくない名前が使用されると、ステートメントの実行時に SQL0206 -「カラムまたはグローバル変数 &1 が見つかりませんでした。」という結果になります。
*EXIST SQL ルーチンの作成時または SQL プリコンパイラーの実行時に、SQL により参照されたグローバル変数が存在する必要があります。このオプションを使用すると、作成時に SQL0206 が発行されます。

SQL_MODIFIES_SQL_DATA

SQL 標準により、SQL BEFORE トリガーで MODIFIES SQL DATA 操作は許可されません。

Informix® データベースでは、SQL BEFORE トリガーで MODIFIES SQL DATA 操作が許可されます。 オプションを *YES に設定すると、SQL BEFORE トリガーは SQL MODIFIES SQL DATA 操作を実行できます。

*DEFAULT デフォルト値は、*NO に設定されます。
*NO SQL BEFORE トリガーで MODIFIES SQL DATA 操作は許可されません。
*YES SQL BEFORE トリガーで MODIFIES SQL DATA 操作が許可されます。

SQL_PSEUDO_CLOSE

V6R1 より前: SQL カーソル・オープン処理は、ジョブのライブラリー・リストに QSQPSCLS1 という名のデータ域があるかどうかをチェックします。 データ域が見つかった場合、再利用できるすべてのカーソルは、再使用の候補としてマークが付けられます。それらは、アプリケーションがカーソルを 2 度目ではなく一度目に閉じるときに疑似クローズされます。 このデータ域がなければ、カーソルは 2 度目のクローズまで再利用できる状態になりません。

初回の疑似クローズによって、再使用されない可能性のあるいくつかのカーソルが開いたままになります。 これらのオープン・カーソルによって、アプリケーションに必要な補助および主記憶域が増加する可能性があります。 記憶域は、WRKSYSSTS コマンドを使用することによって、モニターできます。使用される補助記憶域の量については、「システム ASP 使用 %」を参照してください。 主記憶域の量については、WRKSYSSTS 表示上の障害比率を検査します。

データ域の書式および内容は重要ではありません。 データ域は、コマンド: DLTDTAARA DTAARA(QGPL/QSQPSCLS1) を使用して削除することができます。

各ジョブの最初の SQL オープン操作中に、データ域の存在がチェックされます。 チェックは一度のみ実行され、処理モードはジョブの存続期間の間、同じままです。 ライブラリー・リストは検索用に使用されるので、変更を特定のジョブに分離することができます。これらのジョブのライブラリー・リストのみに含まれるライブラリーにデータ域を作成します。

*DEFAULT

デフォルトの動作は、QSQPSCLS1 *DTAARA が存在するかどうかによって異なります。

ジョブ内の最初の OPEN で QSQPSCLS1 *DTAARA が見つかった場合は、SQL カーソルは、再使用の候補としてマークを付けられます。カーソルは、最初のクローズで疑似クローズされます。

ジョブ内の最初の OPEN で QSQPSCLS1 *DTAARA が見つからなかった場合は、SQL カーソルは、再使用の候補としてマークを付けられます。カーソルは、2 番目のクローズで疑似クローズされます。

整数値 カーソルがいつ疑似クローズされるかを示す、ゼロより大きい値を指定します。 このオプションの値から 1 を引いた値は、カーソルが疑似クローズの候補としてマークを付けられるまでにハード・クローズされる回数を示します。 有効な値は 1 から 65535 です。

SQL_STMT_COMPRESS_MAX

圧縮最大設定値を指定します。 これは、ステートメントがパッケージに準備される際に使用されます。

*DEFAULT デフォルト値は 2 に設定されています。デフォルトは、ステートメントが実行されずに 2 度圧縮された後、いずれかのステートメントと関連付けられているアクセス・プランが除去されることを示しています。
整数値 整数値は、アクセス・プランが除去されてパッケージに追加のスペースが作成される前にステートメントが圧縮される回数を表します。 SQL ステートメントを実行すると、そのステートメントのカウントは 0 にリセットされます。 有効な整数値は 1 から 255 です。

SQL_STMT_REUSE

ステートメントが SQL 拡張動的パッケージに保管されるためには、ここで指定された回数だけ、同じ接続内でそのステートメントが準備されなければなりません。同じ接続内でステートメントが準備された回数が、指定された INI オプションより少ない場合、ステートメントの一時コピーが使用されます。ステートメントを準備する他のジョブは、完全な準備を行います。

*DEFAULT デフォルト値は 3 です。ステートメントは、3 回目に準備されたときに保管されます。
0

ステートメントは、最初に準備されたときに保管されます。V6R1M0 以前では、これはデフォルトの動作でした。

1::255 ステートメントが SQL パッケージに保管されるまでに、ステートメントを同じ接続内で準備しなければならない回数。

SQL_SUPPRESS_MASKED_DATA_DETECTION

*DEFAULT

デフォルト値は、*NO に設定されます。

*YES

マスクされたデータがテーブルへの挿入や更新に使用されている場合、このマスクされたデータの検出は行われず、SQ20478 と理由コード 30 は送信されません。

*NO

アクティブな列マスクのある列が関与する式から直接、アクティブ化された列アクセス制御を伴うテーブルへの挿入や更新を行うために、マスクされたデータが使用されている場合、このマスクされたデータの検出が行われ、SQ20478 と理由コード 30 が送信されます。

SQL_SUPPRESS_WARNINGS

SQL ステートメントの場合、このパラメーターは SQL 警告を抑制する機能を提供します。

*DEFAULT デフォルト値は、*NO に設定されます。
*YES ステートメントの実行後、SQLCA の SQLCODE を調べます。 SQLCODE が + 30 の場合、SQLCA を変更し、呼び出し元に警告が戻らないようにします。

SQLCODE を 0、SQLSTATE を '00000'、SQLWARN を ' ' に設定します。

警告:

  • SQL0335
  • SQL0030
  • SQL7909 (DROP PROCEDURE/ROUTINE/FUNCTION で)
*NO SQL 警告が呼び出し元に戻るように指定します。

SQL_TRANSLATE_ASCII_ TO_JOB

アプリケーション・サーバー (AS) 上で SQL ステートメント・テキストをジョブの CCSID に従って変換するかどうかを指定します。 このオプションは、DRDA を使用して、AS として IBM i に接続する (この場合、アプリケーション・リクエスター (AR) マシンは ASCII ベースのプラットフォーム) 際に適用されます。

*DEFAULT デフォルト値は、*NO に設定されます。
*YES ASCII SQL ステートメント・テキストを IBM i ジョブの CCSID に変換します。
*NO ASCII SQL ステートメント・テキストを ASCII CCSID と関連した EBCIDIC CCSID に変換します。

SQL_XML_DATA_CCSID

XML 列、ホスト変数、パラメーター・マーカー、および式で使用される CCSID が明示的に指定されていない場合、それを指定します。

SQL_XML_DATA_CCSID QAQQINI オプションを参照

*DEFAULT デフォルト値は、1208 に設定されます。
*JOB XML 列、ホスト変数、パラメーター・マーカー、および式で使用される CCSID が明示的に指定されていない場合、ジョブ CCSID が使用されます。 ジョブ CCSID が 65535 の場合は、デフォルト CCSID の 1208 が使用されます。
整数値 XML 列、ホスト変数、パラメーター・マーカー、および式で使用される CCSID が明示的に指定されていない場合に使用される CCSID。 この値は、有効な単一バイトまたは混合 EBCDIC CCSID または Unicode CCSID でなければなりません。 値は 65535 であることはできません。

STAR_JOIN

注: Classic Query Engine での環境のみを変更します。

ハッシュ結合テーブルと値の特殊リストの両方がデータから構成される、ハッシュ照会用の拡張最適化を指定します。 この値の特殊リストは、ハッシュ結合の 1 次テーブルに対する選択に追加されます。

これらの外部キー列上に作成される、あらゆる EVI 索引は、結合値をマッチングさせる前にテーブルに対するビットマップ選択を実行するために使用できます。

このオプションを使用しても、星形結合が必ず最適化プログラムによって選択されるとは限りません。 最適化プログラムがハッシュ結合を使用して照会を実装することを決定している場合にのみ、この手法の使用が許可されます。

*DEFAULT デフォルト値は、*NO に設定されます。
*NO EVI 星形結合最適化サポートは使用可能になりません。
*COST Query 最適化が EVI 星形結合サポートの使用のコストを見積もることができるようにします。

最適化プログラムは、個別リスト選択を使用するかどうかを、それを使用することにどれほどの利点があるかに基づいて決定します。

STORAGE_LIMIT

データベース照会用の一時記憶の限界を指定します。 照会が指定された量よりも多い記憶域を使用することが予期される場合は、照会の実行は許可されません。 指定される値はメガバイト単位です。

*DEFAULT デフォルト値は、*NOMAX に設定されます。
*NOMAX ストレージの問題により照会の実行を停止しません。
整数値 照会が使用できる一時ストレージの最大メガバイト数。この値は、Query 最適化プログラムによって計算される、照会の実行に必要な一時ストレージの見積もり値に対して検査されます。 一時ストレージの見積もり値がこの値よりも大きい場合、照会は開始されません。 有効な値は、0 から 2147352578 の範囲です。

SYSTEM_SQL_STATEMENT_ CACHE

SQL 照会で、システム規模の SQL ステートメント・キャッシュを使用不可にするかどうかを指定します。

*DEFAULT デフォルト値は、*YES に設定されます。
*YES SQL 作成要求が処理されるとき、システム規模のステートメント・キャッシュを調べます。一致するステートメントがキャッシュに存在する場合は、その作成の結果を使用します。このオプションは、アプリケーションの実行する作成のパフォーマンスが向上する可能性があります。
*NO SQL 作成要求が処理されるとき、システム規模の SQL ステートメント・キャッシュを調べません。
SYSTIME_PERIOD_ADJ

システム期間テンポラル表に関わる更新および削除操作の場合、このオプションは、行終了値が行開始値より小さくなる可能性がある際の履歴行の競合を解決します。

*DEFAULT デフォルト値は、*ERROR に設定されます。
*ERROR SQ20528 エラーが通知されます。
*ADJUST
以下の 3 つのことが行われます。
  1. 履歴行の行終了値が、行開始値に小さい差分 (1 マイクロ秒) を加えたものに設定されます。
  2. テンポラル表の現在行の行開始値も、調整された値に設定されます。
  3. SQL 警告 SQ20528 が通知されます。

TEXT_SEARCH_DEFAULT_TIMEZONE

CONTAINS または SCORE 関数で使用される XML テキスト検索に指定された日付または日時値に適用される、時間帯を指定します。 時間帯は、UTC (グリニッジ標準時) からのオフセットです。 これが適用されるのは、特定の時間帯が値に指定されていないときだけです。

*DEFAULT データベースで定義されたデフォルトを使用します。 このオプションは UTC と同じです。
sHH:MM 時間帯のフォーマット済み値。ここで、
  • s は符号の + または - です
  • HH は時間です
  • MM は分です

HH の有効範囲は 00 から 23 です。 MM の有効範囲は 00 から 59 です。 形式は特定されています。 符号を含むすべての値が必須です。 HH または MM が 10 より小さい場合、先行ゼロが指定されている必要があります。

UDF_TIME_OUT

注: Classic Query Engine での環境のみを変更します。

ユーザー定義関数 (UDF) が処理を完了するのをデータベースが待機する時間量を秒単位で指定します。

*DEFAULT 待機時間量は、データベースによって決定されます。 デフォルトは、30 秒です。
*MAX データベースが UDF の終了を待機する最大時間量。
整数値 データベースが UDF の終了を待機する秒数を指定します。指定した値がデータベースの最大待ち時間を超えている場合、最大待ち時間がデータベースによって使用されます。最小値は 1 で、最大値はシステム定義になります。

VARIABLE_LENGTH_ OPTIMIZATION

可変長列で積極的な最適化手法が使用されるかどうかを指定します。

*DEFAULT デフォルト値は、*YES に設定されます。
*YES 索引専用アクセスを含む、可変長の列の積極的な最適化を使用可能にします。 さらに、列に対して等価述部が存在するとき、定数値の置換を許可します。 その結果、可変長列に戻されるデータの長さに、オリジナル・データに存在した末尾ブランクが含まれない可能性があります。 結果として、アプリケーションは、オリジナル・データの代わりに置換された値を受け取ることができます。関数呼び出しは、オリジナルのストリング値ではなく、置換された値に関して機能する場合があります。
*NO 可変長列の積極的な最適化は許可されません。
注: 以下の QAQQINI オプションは、SQE ネイティブ照会アクセスで無視されます。以前、これらのオプションは、CQE ネイティブ照会アクセスで適用されていました。
  • LIMIT_PREDICATE_OPTIMIZATION
  • STAR_JOIN
  • UDF_TIME_OUT
注: 以下の QAQQINI オプションは、SQE ネイティブ照会アクセスで適用されます。以前、これらのオプションは、CQE ネイティブ照会アクセスで無視されていました。
  • DETERMINISTIC_UDF_SCOPE
  • FIELDPROC_ENCODED_COMPARISON
  • MATERIALIZED_QUERY_TABLE_USAGE
  • MATERIALIZED_QUERY_TABLE_REFRESH_AGE
  • MEMORY_POOL_PREFERENCE
  • VARIABLE_LENGTH_OPTIMIZATION