変数名 | オペレーティング・システム | 値 |
---|---|---|
説明 | ||
DB2_BINSORT | すべて | デフォルト=NO
値: YES または NO |
ソートの CPU 時間および経過時間を短縮する新しいソート・アルゴリズムを使用可能にします。この新しいアルゴリズムは、DB2 UDB の非常に効率的なソート技法を、BIGINT、CHAR、VARCHAR、
FLOAT、および DECIMAL などのすべてのソート・データ・タイプおよびこれらのデータ・タイプの組み合わせにも使用できるように拡張します。この新しいアルゴリズムを使用可能にするには、以下のコマンドを使用します。
db2set DB2_BINSORT = yes | ||
DB2_BLOCK_BASED_BP
| Solaris オペレーティング環境 | デフォルト=なし
値: パラメーターによって異なります |
バッファー・プール内にブロック域を作成するために必要な値を指定します。バッファー・プールの ID は必要であり、SYSCAT.BUFFERPOOLS システム・カタログ視点の BUFFERPOOLID 列を調べればわかります。バッファー・プール内でブロック・ベースの入出力に割り振られるページ数を指定する必要があります。ブロックに含まれるページ数はオプションで、デフォルト値は 32 です。
このレジストリー変数の使用のフォーマットは次の通りです。 DB2_BLOCK_BASED_BP=BUFFER POOL ID,BLOCK AREA SIZE,[BLOCK SIZE];... セミコロンで項目を分離して同じ変数を使用することで、複数のバッファー・プールをブロック・ベースとして定義できます。 BLOCK SIZE の値は、2 〜 256 の範囲を取る可能性があります。BLOCK SIZE を指定しないと、デフォルトの 32 が使用されます。 指定された BLOCK AREA SIZE がバッファー・プール・サイズの合計の 98% より大きい場合は、バッファー・プールはブロック・ベースで作成されません。バッファー・プールのページ・ベースの領域に常にバッファー・プールの一部を持つことをお勧めします。これは、システム上の入出力の大半が順次プリフェッチであっても、個々のページが必要になる可能性があるからです。BLOCK AREA SIZE に指定された値が BLOCK SIZE の倍数でない場合は、最も近いブロック・サイズ境界に削減されます。ブロック・ベースの入出力について詳しくは 10.2.1, ブロック・ベースのバッファー・プールを参照してください。 | ||
DB2_NO_FORK_CHECK
| UNIX | デフォルト=OFF
値: ON または OFF |
この変数が 『ON』 の場合、クライアント・プロセスは、アプリケーションが実行プロセスをコピーする (fork する) のを防止しません。fork が行われると、結果は予測できません。結果に影響がない場合もあれば、悪い結果を導いたり、エラー・コードが戻されたり、アプリケーションでトラップが生じたりする可能性もあります。アプリケーションが fork しないと確信しており、パフォーマンスをより向上させたい場合に、この変数を 『ON』 に変更するようにしてください。 | ||
DB2_MINIMIZE_LIST_PREFETCH | すべて | デフォルト=NO
値: YES または NO |
List Prefetch は、該当する RID を索引から検索し、それをページ番号によってソートし、そしてデータ・ページをプリフェッチする、特殊な表アクセス方式です。
最適化プログラムは、List Prefetch が適切なアクセス方式であるかどうか判別するための正確な情報を持っていないことがあります。これは、述部の選択性に、最適化プログラムが選択性を判断するためにカタログ統計を使用することを妨げる、パラメーター・マーカーやホスト変数が含まれている場合に起こる可能性があります。 このレジストリー変数は、最適化プログラムがこのような状態で List Prefetch を考慮しないようにさせます。 | ||
DB2_INLIST_TO_NLJN | すべて | デフォルト=NO
値: YES または NO |
SQL コンパイラーが IN リスト述部を結合に書き換えることができる場合があります。例えば、以下のような照会があるとします。
SELECT * FROM EMPLOYEE WHERE DEPTNO IN ('D11', 'D21', 'E21')これを、以下のように書くことができます。
SELECT * FROM EMPLOYEE, (VALUES 'D11', 'D21', 'E21) AS V(DNO) WHERE DEPTNO = V.DNO
この改訂は、DEPTNO に索引がある場合に、パフォーマンスが向上します。値のリストが最初にアクセスされ、索引を使用してネスト・ループ結合で EMPLOYEE に結合されて、結合述部に適用されます。
最適化プログラムは、書き換えられたバージョンの照会に最適な結合方式を判別するための正確な情報を持っていないことがあります。これは、IN リストに、最適化プログラムが選択性を判断するためにカタログ統計を使用することを妨げる、パラメーター・マーカーやホスト変数が含まれている場合に起こる可能性があります。このレジストリー変数によって、最適化プログラムは、IN リストに役立つ表を結合の内部表として使用して、値のリストを結合する際にネスト・ループ結合を使用するようになります。 |
|レジストリー変数 DB2BPVARS は、2 つの新規パラメーター NUMPREFETCHQUEUES |および PREFETCHQUEUESIZE をサポートします。これらのパラメーターはすべてのプラットフォームに適用でき、 |バッファー・プール・データのプリフェッチ操作を改善するために使用することができます。例えば、 |必要な PREFETCHSIZE がいくつかの PREFETCHSIZE/EXTENTSIZE プリフェッチ要求に分割されている |順次プリフェッチについて考えてみます。この場合、要求はプリフェッチ・キューに入れられ、 |そこから入出力サーバーがディスパッチされて非同期入出力が実行されます。デフォルトでは、DB2 が、 |サイズ max(100,2*NUM_IOSERVERS 1) のキューを各データベース・パーティションごとに 1 つずつ |維持します。環境によっては、キューを増やすか、または異なるサイズのキューにすることにより、 |あるいはその両方を行うことにより、パフォーマンスが向上することがあります。プリフェッチ・キューの数は、 |多くても入出力サーバー数の半分でなければなりません。これらのパラメーターを設定するときは、 |ワークロード特性 (現行ユーザーの数など) だけでなく、他のパラメーター (例えば、PREFETCHSIZE、EXTENTSIZE、 |NUM_IOSERVERS、バッファー・プール・サイズ、DB2_BLOCK_BASED_BP など) も考慮します。
|デフォルト値が使用環境にとって小さすぎると思われる場合は、まず、値のみを少し増やしてください。
|例えば、NUMPREFETCHQUEUES=4 および PREFETCHQUEUESIZE=200 と設定することができます。変更結果をモニターしたり
|評価したりできるように、これらのパラメーターを小刻みに変更するようにしてください。
|
パラメーター名 | デフォルト値 | 有効範囲 |
---|---|---|
NUMPREFETCHQUEUES | 1 | 1 〜 NUM_IOSERVERS
1 未満に設定した場合は、1 に調整
NUM_IOSERVERS を超えて設定した場合は、NUM_IOSERVERS に調整 |
PREFETCHQUEUESIZE | max(100,2*NUM_IOSERVERS) | 1 〜 32767
1 未満に設定した場合は、デフォルト値に調整
32767 を超えて設定した場合は、32767 に調整 |
|DB2_NEWLOGPATH2 レジストリー変数は、すべてのオペレーティング・システムで使用できます。新規変数 DB2_ROLLFORWARD_NORETRIEVE
|が導入されました。両方の変数に関する正しい情報を以下に示します。
|
|新規変数 DB2_REDUCED_OPTIMIZATION が導入されました。
|
変数名 | オペレーティング・システム | 値 |
---|---|---|
説明 | ||
DB2_REDUCED_OPTIMIZATION | すべて | デフォルト=NO
値: YES、NO、または整数 |
レジストリー変数により、特定の最適化レベルで使用される最適化手法をいくつか使用不可にします。使用する最適化手法の数を減らすと、最適化を行うのに使用する時間とリソースも削減されます。
最適化レベル 5 の動的最適化縮小は、『管理者の手引き: パフォーマンス』の『最適化クラス』に説明があるように、 DB2_REDUCED_OPTIMIZATION が整数に設定された場合の動作と同様に、「YES」に設定され、最適化レベル 5 の場合の動作よりも優先順位が高くなります。 |