stmt_conc - ステートメント・コンセントレーター構成パラメーター

この構成パラメーターは、ステートメント・コンセントレーターのデフォルト動作を設定します。

構成タイプ
データベース
パラメーター・タイプ
  • オンラインで構成可能
伝搬クラス
ステートメント境界
デフォルト [範囲]
OFF [OFF, LITERALS]
アップグレードに関する注意事項
  • Db2® バージョン 9.8 フィックスパック 4 pureScale 以前の環境からアップグレードする場合、 stmt_conc の値はメンバー 0 での値に設定されます。

この構成パラメーターは、動的ステートメントのステートメント集中を使用可能にします。 データベース構成での設定は、クライアントがステートメント・コンセントレーターを明示的に使用可能または使用不可に設定していないときのみ使用されます。

使用可能状態のステートメント・コンセントレーターは、パッケージ・キャッシュ項目の共有化を図るために、動的ステートメントを変更します。

この構成パラメーターを OFF に設定すると、ステートメント・コンセントレーターは使用不可になります。 この構成パラメーターを LITERALS に設定すると、ステートメント・コンセントレーターが使用可能になります。 ステートメント・コンセントレーターが使用可能になっている場合、ステートメント内のリテラル値以外が同一の SQL ステートメントは、パッケージ・キャッシュ項目を共有する可能性があります。

例えば、stmt_concLITERALS に設定されている場合、以下の各ステートメントはパッケージ・キャッシュ内で 1 つの項目を共有します。
SELECT FIRSTNME, LASTNAME FROM EMPLOYEE WHERE EMPNO='000020' 
SELECT FIRSTNME, LASTNAME FROM EMPLOYEE WHERE EMPNO='000070'
パッケージ・キャッシュの項目では次のステートメントが使用されています。
SELECT FIRSTNME, LASTNAME FROM EMPLOYEE WHERE EMPNO=:L0 
Db2 データベース・システムは、 次のように、元のステートメントで使用されていたリテラルに基づいて :L0 に値を提供します。
:L0(either '000020' or '000070') 

このパラメーターはステートメント・テキストを変更するため、アクセス・プランの選択に重大な影響を与えることがあります。 ステートメント・コンセントレーターの使用は、パッケージ・キャッシュ内の類似ステートメントが類似プランを持つ場合に限る 必要があります。 例えば、ステートメント内のリテラル値によってプランが異なる場合は、ステートメント・コンセントレーターを LITERALS に設定してはなりません。

stmt_conc 構成パラメーターを使用すると、VARCHAR および VARGRAPHIC のストリング・リテラルの長さ属性が、ストリング・リテラルの長さより大きくなる場合があります。

ステートメント・コンセントレーターにより、一部の組み込み関数から返される結果の型が変わる場合があります。 例えば、REPLACE は、ステートメント・コンセントレーターが使用されているときには異なる型を返す可能性があります。 WORKDEPT 列が CHAR(3) として定義されていて、ステートメント・コンセントレーターが無効にされている場合、以下の照会は VARCHAR(3) を返します。
 SELECT REPLACE(WORKDEPT,'E2','E9') FROM EMPLOYEE

stmt_conc= LITERALS の場合、2 つのストリング・リテラルはパラメーター・マーカーに置き換えられ、返されるデータ型は VARCHAR (6) になります。