パフォーマンス変数

パフォーマンス変数を設定して、アクセス・プランの最適化、メモリー・チューニング操作、オペレーティング・リソース・ポリシーなど、データベース処理を改善できます。

DB2_ALLOCATION_SIZE
  • オペレーティング・システム: すべて
  • デフォルト = 128 KB。範囲: 64 KB から 256 MB
  • バッファー・プールのメモリー割り振りのサイズを指定します。

    このレジストリー変数に高い値を設定することの潜在的な利点は、バッファー・プールの希望のメモリー量に達するために必要な割り振りの回数が少なくてすむということです。

    このレジストリー変数に高い値を設定する際にかかる潜在的な損失は、バッファー・プールが割り振りサイズの倍数で変更されない場合にメモリーが無駄になる点です。 例えば、DB2_ALLOCATION_SIZE の値が 8 MB で、バッファー・プールが 4 MB ずつ削減される場合、8 MB セグメント全体は解放できないので、この 4 MB は無駄になります。

注: DB2_ALLOCATION_SIZE は非推奨になっており、今後のリリースで削除される可能性があります。
DB2_APM_PERFORMANCE
  • オペレーティング・システム: すべて
  • デフォルト = OFF。値: ON または OFF
  • 照会キャッシュ (パッケージ・キャッシュ) の動作に影響するアクセス・プラン・マネージャー (APM) 内でパフォーマンス関連の変更を使用可能にするには、この変数を ON に設定します。 これらの設定値は通常、実動システムには勧められません。 これらはパッケージ外キャッシュ・エラー、メモリー使用量の増加、またはその両方など、 いくらかの制限を生じさせます。

    DB2_APM_PERFORMANCEON に設定すると、NO PACKAGE LOCK モードも使用可能になります。 このモードは、グローバル照会キャッシュがパッケージ・ロックを使用しないで操作できるようにします。 パッケージ・ロックは、キャッシュされたパッケージ項目が除去されないように保護する内部システム・ロックです。 NO PACKAGE LOCK モードの場合、パフォーマンスはいくらか改善されることがありますが、一部のデータベース操作はできなくなります。 これらの禁止される操作には、パッケージを無効にする操作、パッケージを操作不能にする操作、 PRECOMPILEBIND、および REBIND が含まれます。

DB2ASSUMEUPDATE
  • オペレーティング・システム: すべて
  • デフォルト = OFF。値: ON または OFF
  • この変数を有効にすると、 Db2® データベース・システムは、UPDATE ステートメントで指定されたすべての固定長の列が変更されることを想定できます。 これにより、Db2 データベース・システムが既存の列値と新規値を比較して列が実際に変更中かどうかを判別する必要がなくなります。 列が更新用に (例えば SET 文節で) 提供されており、しかし実際にはその列が変更されていないときにこのレジストリー変数を使用すると、ロギングや索引の保守が余分に発生する可能性があります。

    DB2ASSUMEUPDATE レジストリー変数の活動化は、db2start コマンド上では有効です。

DB2_AVOID_LOCK_ESCALATION
  • オペレーティング・システム: すべて
  • デフォルト=OFF (DB2_WORKLOAD=SAP の場合は ON)。値: ON または OFF
  • DB2_AVOID_LOCK_ESCALATION レジストリー変数が ON の場合、ロック・エスカレーションは実行されません。 代わりに SQL0912N が、通常であればロック・エスカレーションになるロックを要求したアプリケーションに返されます。 このアプリケーションは、このアプリケーションによって保持されたロックを解放する COMMIT または ROLLBACK のいずれかを実行できます。 この変数は、インスタンスを再始動せずにオンラインで更新できます。
  • この変数の変更にデータベース・インスタンスの再始動は必要ありません。
DB2_AVOID_PREFETCH
  • オペレーティング・システム: すべて
  • デフォルト = OFF。値: ON または OFF
  • クラッシュ・リカバリーにおいて、プリフェッチを使用するかを指定します。 DB2_AVOID_PREFETCH =ON の場合は、 プリフェッチは使用されません。
DB2_BACKUP_USE_DIO
  • オペレーティング・システム: すべて
  • デフォルト: OFF。値: ON または OFF
  • バックアップ・イメージおよびロード・コピー・イメージをオペレーティング・システムによってキャッシュに入れるかどうかを指定します。 デフォルト動作の場合、イメージ・ファイルはキャッシュに入れられます。 DB2_BACKUP_USE_DIOON に設定されている場合、バックアップ・イメージ・ファイルまたはロード・コピー・イメージ・ファイルは、ファイル・キャッシュをバイパスしてディスクに直接書き込まれます。

    バックアップ・イメージ・ファイルやロード・コピー・イメージ・ファイルをキャッシュに入れることには何の利点もないため、この変数を ON に設定すると、オペレーティング・システムでメモリー・リソースをより効果的に活用できる場合があります。 これは、Linux プラットフォームの場合に、最も効果的にパフォーマンスに影響を与えます。 ただし、バックアップやロード自体によって若干の減速が生じる可能性があるため、DB2_BACKUP_USE_DIOON に設定した場合には、バックアップやロードのパフォーマンスがどれほど変化するかを測定する必要があります。
    注: このレジストリー変数の値を変更しても、既に実行中のバックアップまたはロードの動作には影響しません。 変更した値は次のバックアップまたはロードの実行時に有効になるため、インスタンスを再始動する必要はありません。
DB2BPVARS
  • オペレーティング・システム: 各パラメーターに指定されたとおり
  • デフォルト = パス
  • 2 種類のパラメーターを使用してバッファー・プールを調整できます。 パラメーターの 1 つのセット (Windows でのみ使用可能) は、バッファー・プールが特定のタイプのコンテナーに対して分散読み取りを使用することを指定します。 他の種類のパラメーターは、すべてのプラットフォームで使用可能なもので、 プリフェッチ動作に影響を与えます。
    重要: このパフォーマンス変数は非推奨であり、将来のリリースで除去される可能性があります。 詳しくは、 変更されたレジストリー変数と環境変数を参照してください。
    複数のパラメーターは ASCII ファイル内で、各行に 1 つずつ parameter=value の形式で指定できます。 例えば、bpvars.vars という名前のファイルには、以下の行が含まれている可能性があります。
         NO_NT_SCATTER = 1
    
    bpvars.varsF:\vars\ に保管されていると想定した場合は、これらの変数を設定するために以下のコマンドを実行します。
       db2set DB2BPVARS=F:\vars\bpvars.vars
    

    分散読み取りパラメーター

    分散読み取りパラメーターは、 それぞれのコンテナー・タイプに対する順次プリフェッチが大量に行われ、 DB2NTNOCACHE をすでに ON に設定したシステムで推奨されます。 Windows プラットフォームでのみ使用可能なこれらのパラメーターは、 NT_SCATTER_DMSFILENT_SCATTER_DMSDEVICE、および NT_SCATTER_SMSです。 NO_NT_SCATTER パラメーターを指定すると、 すべてのコンテナーで分散読み取りを明示的に禁止します。 指定の種類のすべてのコンテナーで分散読み取りをオンに切り替えるには、 特定のパラメーターを使用します。 上記の個々のパラメーターのデフォルトはゼロ (OFF) で、 可能な値はゼロ (OFF) および 1 (ON) です。

    注: 分散読み取りをオンにできるのは、 DB2NTNOCACHEON に設定して Windows ファイル・キャッシングをオフにした場合のみです。 DB2NTNOCACHE の設定が OFF に設定されているか未設定の場合は、 コンテナーの分散読み取りを試みると管理通知ログに警告メッセージが書き込まれ、 分散読み取りは使用不可のままになります。
DB2CHKPTR
  • オペレーティング・システム: すべて
  • デフォルト = OFF。値: ON または OFF
  • 入力のポインター検査が必要であるかどうかを指定します。
DB2CHKSQLDA
  • オペレーティング・システム: すべて
  • デフォルト =ON。値: ON または OFF
  • 入力の SQLDA 検査が必要であるかどうかを指定します。
DB2_DEFER_MEMORY_COMMIT
  • オペレーティング・システム: Unix、Linux
  • デフォルト =ON。値: OFF または ON
  • この変数が ON の場合、バッファー・プールとロックリスト・メモリーの初期設定はバックグラウンドで非同期的に実行されます。 この非同期の初期設定により、データベースの活動化が完了し、データベースをアプリケーション接続で利用できるようになるまでの時間が短縮されます。 このメモリーの初期設定中の、データベースが活動化された後の少しの間、データベース・アクティビティーのパフォーマンスに多少の影響が出る場合があります。
  • この変数は Windows オペレーティング・システムには適用されません。既存の動作が既に ON の設定と類似しているからです。
  • この変数の変更を適用するには、データベース・インスタンスの再始動が必要です。
  • この変数を ON に設定することは、 バージョン 11.5以降の非実稼働環境でのみテクニカル・プレビューとしてサポートされますが、 11.5.4以降の実稼働環境では完全にサポートされます。
DB2_DPS_LFR_PAGES_PER_IO
  • オペレーティング・システム: すべて
  • デフォルト: 16。 値: 1 以上 (単位は 4K ログ・ページ)。
  • このレジストリー変数を設定して、 db2lfr EDU がディスクからログ・ページを読み取るために使用するバッファー・サイズを指定できます。 このバッファー・サイズは、クラッシュ・リカバリー、ロールフォワード・リカバリー、HADR スタンバイ・ログ適用などのデータベース・リカバリー操作のパフォーマンスに影響を与える可能性があります。 INCLUDE LOGS オプションを使用する場合、バッファー・サイズは、 db2ReadLog() API の実行時パフォーマンスとオンライン・バックアップ・パフォーマンスにも影響します。
DB2_EVALUNCOMMITTED
  • オペレーティング・システム: すべて
  • デフォルト: NO (DB2_WORKLOAD=SAP の場合は YES)。値: YESNO
  • 使用可能になっていると、この変数は、可能な場合に、スキャンが、データが述部評価を満たしたことがわかるまで行ロックを据え置くかまたは回避できるようにします。 この変数を使用可能にすると、非コミット・データで述部評価が行われる場合があります。 Currently Committed (CC) を適用できないスキャンだけがこれらの変数を考慮します。

    DB2_EVALUNCOMMITTED は、currently committed セマンティクスではロック競合の回避に役立たない場合にのみ適用可能です。 この変数が設定されていて、currently committed がスキャンに適用可能な場合、削除済みの行はスキップされず、コミットされていないデータに対しては述部評価が行われません。代わりに、行およびデータの現在コミット済みバージョンが処理されます。

    また、 DB2_EVALUNCOMMITTED は、カーソル固定分離レベルまたは読み取り固定分離レベルのいずれかを使用するステートメントにのみ適用できます。 さらに、削除された行は表スキャン・アクセスで無条件にスキップされますが、 索引スキャンでは レジストリー変数 DB2_SKIPDELETED も設定されていない限り、削除されたキーはスキップされません。

    DB2_EVALUNCOMMITTED レジストリー変数の活動化は、db2start コマンド上では有効です。 据え置きロッキングを適用可能とするかどうかに関する判断は、ステートメントのコンパイル時またはバインド時に行われます。

DB2_EXTEND_COL_UNIQUE_INDEX_ACCESS
  • オペレーティング・システム: すべて
  • デフォルト =ON。値: ONOFF
  • この変数を使用すると、 カラム・オーガナイズ 表に対してユニーク・キー制約または主キー制約が作成されるときに、変更状態索引を作成するかどうかを制御できます。 このレジストリー変数を OFF に設定すると、適用される主キー制約またはユニーク制約の作成時に変更状態索引は生成されません。 特定の索引アクセス・プランを選択するためには、変更状態索引が必要です。
DB2_EXTENDED_IO_FEATURES
  • オペレーティング・システム: AIX®
  • デフォルト =OFF。値: ONOFF
  • 入出力パフォーマンスを拡張する機能を有効にするには、この変数を ON に設定します。 この機能拡張には、メモリー・キャッシュのヒット率の改善と、高優先順位の入出力の待ち時間の削減が含まれています。 これらのフィーチャーは、特定の組み合わせのソフトウェアとハードウェア構成の場合のみ使用可能です。他の構成に対してこの変数を ON に設定しても、DB2 データベース管理システムまたはオペレーティング・システムでは無視されます。 最小構成要件は、以下のとおりです。
    • データベースのバージョン: Db2 V9.1
    • ロー・デバイスをデータベース・コンテナーに使用する必要があります (ファイル・システム上のコンテナーはサポートされません)。
    • ストレージ・サブシステム: Shark DS8000® は、すべての拡張入出力パフォーマンス機能をサポートしています。 セットアップおよび前提条件については、Shark DS8000 の資料を参照してください。

    HIGHMEDIUM、および LOW のデフォルトの入出力優先順位設定は、それぞれ 38、および 12です。これらの設定は、 DB2_IO_PRIORITY_SETTING レジストリー変数を使用して変更できます。

DB2_EXTENDED_OPTIMIZATION
  • オペレーティング・システム: すべて
  • デフォルト: OFF。値: ONOFFENHANCED_MULTIPLE_DISTINCTIXOROPT_SORTHEAP_EXCEPT_COLNICKNAME_PARALLEL value、または PRLSI value
  • この変数は、照会パフォーマンスの向上に役立つように、照会オプティマイザーが最適化拡張を使用するかどうかを指定します。 値は、異なる最適化拡張を指定します。 複数の値を指定する場合は、コンマ区切りのリストを使用します。

    デフォルトの動作 (OFF または IXOR の値によって指定される) では、オプティマイザーが索引 ORing データ・アクセス方式を拡張し、索引付けされていない列の述部が存在する場合でも、索引付けされた列を参照する OR 述部を含めます。 例えば、以下の 2 つの索引定義を考えてみてください。
       INDEX IX2:  dept    ASC
       INDEX IX3:  job     ASC
    次の述部は、IXOR オプションが設定されているときに上記の 2 つの索引を使用することにより実行できます。
       WHERE
            dept = :hv1 OR
            (job = :hv2 AND
            years >= :hv3)

    OPT_SORTHEAP_EXCEPT_COL value オプションを使用して、 sortheap データベース構成パラメーターの値をオーバーライドできます。 オーバーライド値は、照会最適化だけに影響を与えます。 実行時に使用可能な実際のメモリー量の決定は行いません。 照会が カラム・オーガナイズ 表にアクセスする場合、このオーバーライド値は無視され、照会コンパイラーが sortheap データベース構成パラメーターの現行値を使用できるようになります。

    OPT_SORTHEAP_EXCEPT_COL の使用法の 1 つは、シャドー表のためのものです。 シャドー表により、OLTP 環境で分析照会のための BLU Acceleration が容易になります。 シャドー表は カラム・オーガナイズ 表です。 ソート・ヒープ・メモリーの要件は、OLTP 環境でデータベース用に通常使用する量よりも大きくなります。 OLTP 照会の既存のアクセス・プランに影響を与えることなくソート・ヒープ・メモリーを増やすには、OPT_SORTHEAP_EXCEPT_COL を DB2_EXTENDED_OPTIMIZATION に追加して、sortheap データベース構成パラメーターの値をオーバーライドします。

    ニックネーム照会の並列アクセス・プランを生成するために、照会コンパイラーに NICKNAME_PARALLEL 値を使用することができます。 デフォルトでは、照会コンパイラーは、ニックネーム照会のためのシリアル・アクセス・プランを生成します。 並列アクセス・プランを利用すると、ニックネームの照会パフォーマンスを大幅に向上させることができます。 このレジストリー変数の値は、フェデレーション・サーバー・オプション SUPPORT_PARALLELISM と一緒に使用する必要があります。 詳しくは、 フェデレーションのパフォーマンスを参照してください。

    DB2_EXTENDED_OPTIMIZATION 設定を使用しても、必ずしもすべての環境で照会のパフォーマンスが向上するわけではありません。 それぞれの照会パフォーマンスが向上するかどうかを判別するために、テストを行う必要があります。

    PRLSI オプションは、非 MPP 環境での SET INTEGRITY 制約および参照整合性検査の SMP 並列化を制御します。 並列処理を使用すると、SET INTEGRITY ステートメントのパフォーマンスを改善できる可能性があります。 制約事項はあります。 詳しくは、 SET INTEGRITY ステートメントを参照してください。 デフォルトの動作では、SET INTEGRITY ステートメントの SMP 並列処理は実行されません。

    PRLSI ON オプションは、「増分ではない」SET INTEGRITY ステートメントの SMP 並列化を有効にします。

    PRLSI INCR オプションは、「増分」および「非増分」の SET 整合性ステートメントの SMP 並列化を有効にします。

    PRLSI OFF オプションは、SET INTEGRITY ステートメントの SMP 並列化を使用不可にします。

    重要:
    • ENHANCED_MULTIPLE_DISTINCT および IXOR の値は、 バージョン 10.1 以降非推奨になり、将来のリリースで削除される可能性があります。 ENHANCED_MULTIPLE_DISTINCT オプションを除去すると、DISTINCT を複数含む照会のパフォーマンスを向上させる新しい機能拡張を使用できるようになります。 IXOR 値は、デフォルトの動作を指定するため、冗長です。 詳しくは、 動作が変更されたレジストリー変数を参照してください。
    • ENHANCED_MULTIPLE_DISTINCT の値は、インスタンスが最後に開始されたときに有効になっていた場合にのみ、動的に反映されます。
DB2_IO_PRIORITY_SETTING
  • オペレーティング・システム: AIX
  • 値: HIGH:#,MEDIUM:#,LOW:#。ここで #1 から 15 までのいずれかの数値を指定できます。
  • この変数は、 DB2_EXTENDED_IO_FEATURES レジストリー変数と組み合わせて使用します。 このレジストリー変数は、 Db2 データベース・システムのデフォルトの HIGHMEDIUM、および LOW 入出力優先順位設定 (それぞれ 38、および 12) をオーバーライドする手段を提供します。 このレジストリー変数は、インスタンスの開始前に設定する必要があります。変更した場合は、インスタンスの再始動が必要です。 このレジストリー変数を設定するだけでは拡張入出力機能は有効にならず、有効にするには DB2_EXTENDED_IO_FEATURES を設定する必要があることに注意してください。 DB2_EXTENDED_IO_FEATURES に対するすべてのシステム要件は、このレジストリー変数にも適用されます。
DB2_KEEP_AS_AND_DMS_CONTAINERS_OPEN
  • オペレーティング・システム: すべて
  • デフォルト: NO。値: YES または NO
  • この変数を ON に設定すると、各 DMS 表スペースのコンテナーには、データベースが非活動状態になるまで開かれたままになるファイル・ハンドルがあります。 コンテナーを開くオーバーヘッドが除去されるので、照会のパフォーマンスが向上する可能性があります。 このレジストリーは、純粋な DMS 環境でのみ使用してください。そうでない場合、SMS 表スペースに対する照会のパフォーマンスは悪影響を受ける場合があります。
DB2_KEEPTABLELOCK
  • オペレーティング・システム: すべて
  • デフォルト: OFF。 値: ONTRANSACTIONOFFCONNECTION
  • この変数が ON または TRANSACTION に設定されていると、この変数によって Db2 データベース・システムは、非コミット読み取りまたはカーソル固定のいずれかの分離レベルのカーソルがクローズされるときでも、表ロックについては引き続き保持されるようになります。 保持される表ロックは、読み取り固定スキャンまたは反復可能読み取りスキャンの場合に解放されるように、トランザクションの終了時に解放されます。

    この変数が CONNECTION に設定されていると、アプリケーションがトランザクションをロールバックするか、接続がリセットされるまで、表ロックはアプリケーションに対して解放されています。 表ロックはコミット間で保持され続け、表ロックをドロップするアプリケーション要求はデータベースによって無視されます。 表ロックは、アプリケーションに割り振られたままです。 したがって、アプリケーションが表ロックを再び要求するとき、ロックはすでに使用可能です。

    この最適化を活用できるアプリケーションのワークロードの場合、パフォーマンスは向上します。 ただし、同時に実行されるその他のアプリケーションのワークロードが、影響を受ける場合があります。 その他のアプリケーションは、並行性が低下する結果となる指定された表へのアクセスをブロックされる可能性があります。 Db2 SQL のカタログ表は、この設定の影響を受けません。 CONNECTION 設定には、ON または TRANSACTION 設定で説明されている動作も含まれます。

    このレジストリー変数はステートメントのコンパイル時またはバインド時にチェックされます。

DB2_LARGE_PAGE_MEM
  • オペレーティング・システム: AIX、 Linux®、Windows Server
  • デフォルト: NULL。値: ラージ・ページ・メモリーを使用する必要がある、該当するすべてのメモリー領域を示すには * を使用します。あるいは、ラージ・ページ・メモリーを使用する必要がある、特定のメモリー領域のリストをコンマ区切りで指定します。 使用可能な領域はオペレーティング・システムによって異なります。
  • ハードウェアに依存する特定の、または多様な大きいページ・サイズを指して、Db2 では一般的に「ラージ・ページ」という語が使用されますが、オペレーティング・システムでは「ラージ」や「ヒュージ」という語が使用されます。 「ラージ」または「ヒュージ」である OS ページ・サイズは、すべての OS/ハードウェア・プラットフォームで同じわけではありません。 これらの語は、1 つの OS/ハードウェア・プラットフォームにおいても複数のページ・サイズを指す場合があります。
  • DB 設定は DATABASE_MEMORY 領域に適用され、以下のページ・サイズを有効にします。 AIX -ラージ (16MB) ページ、 Linux x64 -ヒュージ (2MB) ページ、および Windows ラージ (2MB) pages.- DB:16GB 設定は、 DATABASE_MEMORY 領域のヒュージ (16GB) ページを有効にする AIX でのみ使用可能です。
  • PRIVATEDBMSFCM、および APPL (APPL_MEMORY) 設定は、 AIX でのみ使用できます。これらの各設定により、該当するメモリー領域のラージ (16MB) ページが使用可能になります。
  • * 設定は、上記の使用可能なすべての領域で OS のラージ/ヒュージ・ページ・メモリーを使用できるようにします。 AIXでは、ラージ (16MB) ページは、ヒュージ (16GB) ページではなく、データベース・メモリーに対して使用可能になります。

    データベース・メモリー (DB) に対してラージ・ページまたはヒュージ・ページを使用する場合、データベース・メモリーの動的削減が制限され、db_mem_thresh 設定は無視されます。 セルフチューニング・メモリー・マネージャー (STMM) は、データベース領域の全体のサイズは調整しません。 しかし、STMM は、構成に従ってデータベース・メモリー領域内の個々の領域をチューニングします。 詳しくは、関連リンク・セクションにある database_memory トピックを参照してください。

    集中的なメモリー・アクセスを必要とし、大量の仮想メモリーを使用するアプリケーションでは、このラージ・ページまたはヒュージ・ページの使用によってパフォーマンスを向上できる場合があります。 Db2 データベース・システムでそれらを使用できるようにするには、まずオペレーティング・システムがラージ・ページまたはヒュージ・ページを使用できるように構成する必要があります。

    64 ビット Db2 for AIX でエージェント専用メモリー用にラージ・ページを使用可能にするには ( DB2_LARGE_PAGE_MEM=PRIVATE 設定)、オペレーティング・システム上にラージ・ページを構成し、インスタンス所有者が CAP_BYPASS_RAC_VMM および CAP_PROPAGATE 機能を持っていなければなりません。

    Linux で、ヒュージ・カーネル・ページが使用可能であることを確認するには、次のコマンドを実行します。

       cat ⁄proc/meminfo

    ヒュージ・カーネル・ページが使用可能である場合は、次の 3 行が表示されます (サーバー上に構成されているメモリーの量によって数値は異なります)。

    HugePages_Total:   200
    HugePages_Free:    200
    Hugepagesize:    16384 kB

    これらの行が表示されない場合、または HugePages_Total が 0 である場合は、オペレーティング・システムまたはカーネルを構成する必要があります。

    Windows では、システムで使用可能なラージ・ページ・メモリーの量は、合計使用可能メモリーよりも少なくなります。 システムがいくらかの時間稼働した後、メモリーをフラグメント化できるようになり、ラージ・ページ・メモリーの量が減少します。 Windows でラージ・メモリー・ページを割り振る際に一貫性のあるパフォーマンスを実現するには、 DB2_ALLOCATION_SIZE レジストリー変数を 256 MB などの高い値に設定する必要があります。 (DB2_ALLOCATION_SIZE を使用する場合は、インスタンスを停止してから再始動する必要があります)。

DB2_LOGGER_NON_BUFFERED_IO
  • オペレーティング・システム: すべて
  • デフォルト = AUTOMATIC。値: AUTOMATICON、または OFF
  • この変数を使用して、ログ・ファイル・システムに対して直接入出力 (DIO) を使用するかどうかを制御できます。 DB2_LOGGER_NON_BUFFERED_IOAUTOMATIC に設定すると、アクティブ・ログ・ウィンドウ (すなわち 1 次ログ・ファイル) が DIO でオープンされ、他のロガー・ファイルはすべてバッファーに入れられます。 ON に設定すると、すべてのログ・ファイル・ハンドルが DIO でオープンされます。 OFF に設定すると、すべてのログ・ファイル・ハンドルがバッファーに入れられます。
DB2MAXFSCRSEARCH
  • オペレーティング・システム: すべて
  • デフォルト = 5。値: -11 から 33554
  • 表へのレコードの追加時に、検索するフリー・スペース制御レコード (FSCR) の数を指定します。 デフォルトでは、5 つの FSCR を検索します。 この値の変更は、スペース再利用で挿入速度の平衡を取れるようにします。 スペース再利用の最適化のためには大きな値を使用します。 挿入速度の最適化のためには小さな値を使用します。 値を -1 に設定すると、データベース・マネージャーはすべての FSCR を強制的に検索します。
DB2_MAX_INACT_STMTS
  • オペレーティング・システム: すべて
  • デフォルト = 設定なし。値: 最大 4 000 000 000
  • この変数は、1 つのアプリケーションに保持される非アクティブ・ステートメントの数に関するデフォルトの限度をオーバーライドします。 別の値を選択して、非アクティブ・ステートメント情報用に使用されるシステム・モニター・ヒープの量を増減できます。 デフォルトの限度は 250 です。

    アプリケーションの作業単位に含まれるステートメント数が非常に多い場合や、多数のアプリケーションが並行して実行されている場合は、システム・モニター・ヒープが使い尽くされることがあります。

DB2_MAX_NON_TABLE_LOCKS
  • オペレーティング・システム: すべて
  • デフォルト = YES。値: 説明を参照
  • この変数は、トランザクションによってすべてが解放される前に持つことのできる、 NON 表ロックの最大数を定義します。 NON 表ロックとは、トランザクションが使用を終えてもハッシュ・テーブルやトランザクション・チェーンに保持されている表ロックのことです。 トランザクションが同じ表に何回もアクセスすることはよくあるので、 ロックを保持してその状態を NON に変更することでパフォーマンスが改善されます。
    最良の結果を得るためのこの変数の推奨値は、接続によってアクセスが予想される表の数の最大数です。 ユーザー定義値が指定されない場合、デフォルト値は以下のとおりです。locklist サイズが次のもの以上の場合、
     SQLP_THRESHOLD_VAL_OF_LRG_LOCKLIST_SZ_FOR_MAX_NON_LOCKS 
    (現行は 8000)、デフォルト値は次のようになります。
    SQLP_DEFAULT_MAX_NON_TABLE_LOCKS_LARGE
    (現在は 150)。 それ以外の場合、デフォルト値は次のようになります。
    SQLP_DEFAULT_MAX_NON_TABLE_LOCKS_SMALL
    (現在は 0)。
DB2_MDC_ROLLOUT
  • オペレーティング・システム: すべて
  • デフォルト = IMMEDIATE。値: IMMEDIATEOFF、または DEFER
  • この変数によって、MDC 表からの削除のパフォーマンスが改善されます。その処理のことをロールアウトといいます。 ロールアウトは、MDC 表内の行を削除する高速の手段です。このとき、すべてのセル (ディメンション値の論理積) は、1 つの検索 DELETE ステートメントで削除されます。 この利点は、ロギングが削減され、処理がより効率的に行われることです。
  • この変数設定の場合に生じる可能性のある 3 つの結果は次のとおりです。
    • ロールアウトなし - OFF を指定した場合
    • 即時ロールアウト - IMMEDIATE を指定した場合
    • 索引の据え置きクリーンアップ付きのロールアウト - DEFER を指定した場合
  • 始動後に値を変更した場合に、ステートメントを新たにコンパイルすると、新しいレジストリー値の設定が順守されます。 パッケージ・キャッシュ内にあるステートメントの場合、そのステートメントの再コンパイル時点まで、削除処理中の変更は行われません。 SET CURRENT MDC ROLLOUT MODE ステートメントは、アプリケーション接続レベルの DB2_MDC_ROLLOUT の値をオーバーライドします。
  • Db2 9.7 以降のリリースでは、パーティション化された RID 索引を持つ範囲パーティション表に対して DEFER 値はサポートされません。 サポートされるのは、OFF 値と IMMEDIATE 値だけです。 DB2_MDC_ROLLOUT レジストリー変数が DEFER に設定されている場合、または DB2_MDC_ROLLOUT の設定をオーバーライドするために CURRENT MDC ROLLOUT MODE 特殊レジスターが DEFERRED に設定されている場合、クリーンアップ・ロールアウト・タイプは IMMEDIATE です。

    表に対して非パーティション化された RID 索引のみ存在する場合には、据え置き索引クリーンアップ・ロールアウトがサポートされます。

  • この変数を変更すると、それはその後コンパイルされるすべての SQL ステートメントに対してただちに有効になります。 インスタンスを再始動したり、db2set コマンドに -immediate パラメーターを指定して発行したりする必要はありません。
DB2MEMDISCLAIM
  • オペレーティング・システム: すべて
  • デフォルト = YES。値: YES または NO
  • Db2 データベース・システム・プロセスが使用するメモリーには、ページング・スペースが関連することがあります。 このページング・スペースは、関連するメモリーが解放された後も予約されたままになる場合があります。 これは、オペレーティング・システムの (調整可能な) 仮想メモリー管理割り振りポリシーによって異なります。 DB2MEMDISCLAIM レジストリー変数は、 Db2 エージェントが、解放されたメモリーから予約済みページング・スペースの関連付けを解除するようにオペレーティング・システムに明示的に要求するかどうかを制御します。

    DB2MEMDISCLAIMYES に設定すると、ページング・スペースの所要量が少なくなり、場合によってはページングによるディスク・アクティビティーも少なくなります。 DB2MEMDISCLAIMNO に設定すると、ページング・スペース所要量が増加し、場合によってはページングによるディスク・アクティビティーも増加します。 ページング・スペースが多い場合や、 ページングが行われないほど実メモリーが十分にある場合などは、 NO を設定してもパフォーマンスはわずかしか向上しません。

DB2_MEM_TUNING_RANGE
  • オペレーティング・システム: すべて
  • デフォルト = NULL。値: パーセント値 nm のシーケンス。n = minfreem = maxfreen < m です。
  • この変数が設定されない場合、Db2 データベース・マネージャーは minfreemaxfree の値を、サーバーのメモリー量に基づいて計算します。 instance_memory が限られている環境では、Db2 データベース・マネージャーは minfreemaxfree の値を、instance_memory 設定に基づいて計算します。 セルフチューニング・メモリー・マネージャー (STMM) が有効で database_memoryAUTOMATIC に設定されている場合を除き、この変数を設定しても効果はありません。

    minfree および maxfree の設定値は、STMM がバッファーとして残そうとするインスタンス・メモリーまたはシステム・メモリーの一方、あるいは両方を表します。 このバッファーは、揮発性メモリー要件を満たしつつ、システムでメモリーが過剰コミットされたり、インスタンス・メモリーが使い尽くされたりすることを回避するために重要です。 さらに、複数のデータベースの間でメモリー要求のバランスを取るために、minfree から maxfree の範囲が使用されます。 STMM によって調整される単一データベースでは、システムまたはインスタンスのターゲット空きメモリーは常に minfree になります。 複数のデータベース環境で、メモリーの要求が最も高いデータベースの STMM チューナーは minfree 値をターゲットとし、要求がそれよりも低いデータベースの STMM チューナーでは、より高い可変の空きメモリー (maxfree 値まで) をターゲットとします。 minfree, maxfree のデフォルト設定は次のとおりです。
    表 1. minfree, maxfree のデフォルト設定
    インスタンスまたはシステムのメモリー・サイズ minfree (%) maxfree(%)
    1 GB 7.8 33
    2 GB 7.4 29
    4 GB 7.0 25
    8 GB 6.7 22
    16 GB 6.4 19
    32 GB 6.2 17
    64 GB 6.0 15
    128 GB 5.8 13
    256 GB 5.7 12
    512 GB 5.6 11
    1 TB 5.5 10

    バージョン 10.5以降、上記の表の値に含まれている 5% のバッファーが追加されました。 この追加バッファーは、自動調整される STMM 環境で必要な回復力を維持しつつ、より広範な環境でのメモリー要求の揮発性に対応するためのものです。 ただし、5% の追加バッファーは、新たにアクティブになるデータベースで、アクティブ化時のデチューニング (規模縮小) を最小限に抑えるために使用されます。 バージョン 10.5 以降の STMM チューナーが、以前のリリースの STMM チューナー (システム・メモリーを求めて競合しているもの) の存在を検出すると、 バージョン 10.5 以降で実行されているデータベースの計算から追加の 5% バッファーが削除されます。 この 5% の追加バッファーの除外は、前のリリースで実行されているデータベース (空きメモリーのターゲットが低くなる傾向にある) にメモリー割り振りが偏らないようにすることを目的としています。

    STMM 環境で minfree, maxfree 設定値を小さくすることで、パフォーマンス向上が達成される場合があります。 ただし、メモリー要求の揮発性によってページングまたはメモリーの使い尽くしが発生しないようにする必要があります。

    この変数を変更すると、すべての STMM チューニング操作に対してただちに有効になります。 インスタンスを再始動したり、db2set コマンドに -immediate パラメーターを付けて実行したりする必要はありません。

  • この変数を変更すると、それはその後コンパイルされるすべての SQL ステートメントに対してただちに有効になります。 インスタンスを再始動したり、db2set コマンドに -immediate パラメーターを指定して発行したりする必要はありません。
DB2_MMAP_READ
  • オペレーティング・システム: AIX
  • デフォルト = OFF。値: ON または OFF
  • この変数は、 Db2 データベース・システムが入出力の代替方法として mmap を使用できるようにするために、 DB2_MMAP_WRITE と一緒に使用されます。

    これらの変数が ON に設定されている場合、Db2 バッファー・プールへのデータの読み込み、およびバッファー・プールからのデータの書き出しはメモリー・マップ I/O を使用して行われ、データは後でファイル・システム・キャッシュから削除されます。 これにより、Db2 データが二重にキャッシュされることを防ぎます。 ただし、ファイル・システム・キャッシュをバイパスするための推奨される方法は、表スペース・レベルで NO FILE SYSTEM CACHING 節を指定し、これらの変数をデフォルト設定の OFFのままにすることです。

重要: DB2_MMAP_READ レジストリー変数は、 Db2 バージョン 11.5.8では非推奨になっており、将来のリリースまたはモディフィケーション・パックで廃止される予定です。 同等の動作を実現するには、 ALTER TABLESPACE コマンドの NO FILE SYSTEM CACHING オプションを使用します。
DB2_MMAP_WRITE
  • オペレーティング・システム: AIX
  • デフォルト = OFF。値: ON または OFF
  • この変数は、 Db2 データベース・システムが入出力の代替方法として mmap を使用できるようにするために、 DB2_MMAP_READ と一緒に使用されます。

    これらの変数が ON に設定されている場合、Db2 バッファー・プールへのデータの読み込み、およびバッファー・プールからのデータの書き出しはメモリー・マップ I/O を使用して行われ、データは後でファイル・システム・キャッシュから削除されます。 これにより、Db2 データが二重にキャッシュされることを防ぎます。 ただし、ファイル・システム・キャッシュをバイパスするための推奨される方法は、表スペース・レベルで NO FILE SYSTEM CACHING 節を指定し、これらの変数をデフォルト設定の OFFのままにすることです。

重要: DB2_MMAP_WRITE レジストリー変数は、 Db2 バージョン 11.5.8では非推奨になっており、将来のリリースまたはモディフィケーション・パックで廃止される予定です。 同等の動作を実現するには、 ALTER TABLESPACE コマンドの NO FILE SYSTEM CACHING オプションを使用します。
DB2_NO_FORK_CHECK
  • オペレーティング・システム: Unix
  • デフォルト = OFF。値: ON または OFF
  • この変数を使用可能にすると、Db2 ランタイム・クライアントは、現行プロセスがフォーク呼び出しの結果であるかどうかを判別するチェックを最小化します。 これにより、 fork() API を使用しない Db2 アプリケーションのパフォーマンスを向上させることができます。
DB2NTMEMSIZE
  • オペレーティング・システム: Windows
  • デフォルト = (メモリー・セグメントにより異なる)
  • Windows では、プロセス間で一致するアドレスを保証するために、DLL の初期化時にすべての共用メモリー・セグメントを予約する必要があります。 DB2NTMEMSIZE は、必要に応じて、Windows 上の Db2 のデフォルトをオーバーライドすることをユーザーに許可します。 ほとんどの状態では、デフォルト値で十分なはずです。 メモリー・セグメント、デフォルト・サイズ、およびオーバーライド・オプションは以下のとおりです:
    1. 並列 FCM バッファー: デフォルトのサイズ 512 MB (32 ビット・プラットフォーム)、4.5 GB (64 ビット・プラットフォーム)。オーバーライド・オプションは FCM:number_of_bytes です。
    2. fenced モード・コミュニケーション: デフォルトのサイズ 80 MB (32 ビット・プラットフォーム)、512 MB (64 ビット・プラットフォーム)。オーバーライド・オプションは APLD:number_of_bytes です。
    3. メッセージ照会メモリー: 32 ビットおよび 64 ビット・プラットフォームのデフォルト・サイズは 4 MB です。オーバーライド・オプションは QUE:<number of bytes> です。
    複数のセグメントをオーバーライドするには、オーバーライド・オプションをセミコロン (;) で区切ります。 例えば、32 ビット・バージョンの Db2では、FCM バッファーを 1 GB に制限し、fenced ストアード・プロシージャーを 256 MB に制限するには、以下を使用します。
    db2set DB2NTMEMSIZE=FCM:1073741824;APLD:268435456
    
    メッセージ・キュー・メモリーを 64 MB に増やすには、次のコードを使用します。
    db2set DB2NTMEMSIZE=QUE:67108864
    
DB2NTNOCACHE
  • オペレーティング・システム: Windows
  • デフォルト = OFF。値: ON または OFF
  • DB2NTNOCACHE レジストリー変数は、 Db2 データベース・システムが NOCACHE オプションを指定してデータベース・ファイルをオープンするかどうかを指定します。 DB2NTNOCACHEON に設定されている場合、ファイル・システムのキャッシュは除去されます。 DB2NTNOCACHEOFFに設定されている場合、オペレーティング・システムは Db2 ファイルをキャッシュに入れます。 これは、 長いフィールドまたは LOB を含んでいるファイルを除くすべてのデータに適用されます。 システム・キャッシュを除去すると、 より多くのメモリーがデータベースに利用できるようになるため、 バッファー・プールやソート・ヒープの量を増やすことができます。

    Windows では、ファイルは開かれたときにキャッシュに入れられます。これがデフォルトの動作です。 ファイル内の 1 GB ごとに 1 MB がシステム・プールから予約されます。 このレジストリー変数を使用して、キャッシュに関する (文書化されていない) 192 MB 制限をオーバーライドします。 キャッシュの限界に達すると、リソース不足を示すエラーが表示されます。

  • この変数を変更すると、それはその後コンパイルされるすべての SQL ステートメントに対してただちに有効になります。 インスタンスを再始動したり、db2set コマンドに -immediate パラメーターを指定して発行したりする必要はありません。
注: 表スペース・コンテナーの場合、ALTER TABLESPACE または CREATE TABLESPACE ステートメントで NO FILE SYSTEM CACHING 節を使用すると、 DB2NTNOCACHEONに設定した場合と同じ利点が報告されます。
DB2NTPRICLASS
  • オペレーティング・システム: Windows
  • デフォルト = NULL。値: RH、(他の任意の値)
  • Db2 インスタンス (プログラム DB2SYSCS.EXE) の優先順位クラスを設定します。 次の 3 つの優先度クラスがあります。
    • NORMAL_PRIORITY_CLASS (デフォルトの優先度クラス)
    • REALTIME_PRIORITY_CLASS (R を使って設定)
    • HIGH_PRIORITY_CLASS (H を使って設定)

    この変数は、個々のスレッド優先順位 ( DB2PRIORITIESを使用して設定) と組み合わせて使用され、システム内の他のスレッドに対する Db2 スレッドの絶対優先順位を決定します。

    注: DB2NTPRICLASS は非推奨であり、サービスの推奨時にのみ使用してください。 エージェントの優先順位およびプリフェッチの優先順位を調整するには、Db2 サービス・クラスを使用します。 この変数を使用する際には、注意する必要があります。 誤用すると、システム・パフォーマンス全体に悪い影響を及ぼす可能性があります。

    詳細は、Win32 資料の SetPriorityClass() API を参照してください。

DB2NTWORKSET
  • オペレーティング・システム: Windows
  • デフォルト = 1,1
  • Db2 データベース・マネージャーに利用できる最小および最大の実効ページ・セットを変更するために使用されます。 デフォルトでは、Windows がページング状態にない場合、プロセスの実効ページ・セットは必要に応じて大きくなる可能性があります。 ただし、ページングが発生しているときは、 プロセスが持つことができる最大の実効ページ・セットは約 1 MB です。 DB2NTWORKSET を使えば、このデフォルトの動作をオーバーライドできます。

    DB2NTWORKSET は、構文 DB2NTWORKSET=min, maxを使用して指定します。ここで、 min および max はメガバイトで表されます。

DB2_OVERRIDE_BPF
  • オペレーティング・システム: すべて
  • デフォルト = 設定なし。値: ページ数の正数値または <entry>[;<entry>]。<entry> = <buffer pool ID>,<number of pages> です。
  • この変数は、データベースの活動化、ロールフォワード・リカバリー、またはクラッシュ・リカバリーの際に作成されるバッファー・プールのサイズをページ数で指定します。 これが役立つのは、メモリー制約のためにデータベースの活動化、ロールフォワード・リカバリー、またはクラッシュ・リカバリーの途中で障害が発生する場合です。 メモリーの制約は、実メモリーの不足により生じることも稀にありますが、たいていはデータベース・マネージャーがラージ・バッファー・プールを割り当てようとしたことが原因で、誤った構成のバッファー・プールがあったために起こります。 例えば、データベース・マネージャーによって最小のバッファー・プール (16 ページ) も起動しない場合は、 この環境変数を使用してさらに小さいページ数を指定してみてください。 この変数に指定された値は、現行バッファー・プール・サイズをオーバーライドします。

    バッファー・プールのすべてまたはサブセットのサイズを一時的に変更して、起動できるようにするために、<entry>[;<entry>...] (<entry> = <buffer pool ID>,<number of pages>) を使用することも可能です。

DB2_PINNED_BP
  • オペレーティング・システム: AIX、Linux
  • デフォルト =NO。値: YES または NO
  • この変数を YES に設定すると、Db2 は、オペレーティング・システムが Db2 のデータベース共有メモリーを固定することを要求します。 データベース共有メモリーを固定するように Db2 を構成すると、オペレーティング・システムによるメモリー管理の柔軟性が低下するため、システムの負荷が高くなりすぎないように注意する必要があります。

    Linuxでは、このレジストリー変数の変更に加えて、ライブラリー libcap.so.1 も必要になります。

    この変数を YES に設定すると、データベース共有メモリーのセルフチューニング (database_memory 構成パラメーターを AUTOMATIC に設定することによって活動化される) を使用可能にできなくなります。

    64 ビット環境での HP-UX では、このレジストリー変数を変更する他に、Db2 インスタンス・グループに MLOCK 特権を与えなければなりません。 これを行うには、ルート・アクセス権限を持つユーザーが以下の処置を実行します。

    1. Db2 インスタンス・グループを /etc/privgroup ファイルに追加します。 例えば、 Db2 インスタンス・グループが db2iadm1 グループに属している場合、 次の行を /etc/privgroup ファイルに追加します。
      db2iadm1 MLOCK
    2. 次のコマンドを発行します。
         setprivgrp -f /etc/privgroup
DB2PRIORITIES
  • オペレーティング・システム: すべて
  • 値の設定はプラットフォームにより異なります
  • Db2 プロセスとスレッドの優先順位を制御します。
注: DB2PRIORITIES は非推奨であり、サービスの推奨時にのみ使用してください。 エージェントの優先順位およびプリフェッチの優先順位を調整するには、Db2 サービス・クラスを使用します。
DB2_RCT_FEATURES
  • オペレーティング・システム: すべて
  • デフォルト: NULL。 値: GROUPUPDATE=[ON|OFF]GROUPUPDATE のデフォルト値は OFF です。
  • この変数では、キー・シーケンス列の先頭およびサブセットに等価述部が指定される場合のみ、範囲がクラスター化された表の複数の行をターゲットとする検索条件付き UPDATE ステートメントの最適化および削減された更新処理が可能です。 各行のログ・レコードが更新される代わりに、ページ上の全行の単一ログ・レコードが更新されるので、ロギングも減少します。
    使用法:
    db2set DB2_RCT_FEATURES=GROUPUPDATE=ON
DB2_RECOVERY_SETTINGS
  • オペレーティング・システム: すべて
  • デフォルト: NULL。 値: セミコロンで区切られた、以下の 1 つ以上の値。
    • NUM_AGENTS: [value]。 デフォルト: min (ホスト上の物理 CPU の数、17)。 値: 3 以上
    • QSETSIZE: [値]。 デフォルト: NUM_AGENTS-1。 値: 3 以上。
    • NUM_QSETS: [値]。 デフォルト: 使用可能メモリーや表スペースの数などの要因に基づいて計算されます。 値: 2 以上。
  • このレジストリー変数を使用して、HADR スタンバイ・リプレイを含むログ・リカバリー操作のパフォーマンスを調整することができます。 チューニングを行うには、設定した数のエージェントまたはキューを使用するようにレジストリー変数を構成します。 値が大きいほど並列化が大きくなり、パフォーマンスが向上する可能性があります。 ただし、多数のエージェントおよびキューを管理するために必要なオーバーヘッドが原因で、パフォーマンスの向上が減少または解消される可能性があります。
  • 新しい設定は、後続の操作 (クラッシュ・リカバリー、データベース・ロールフォワード操作、HADR スタンバイでのデータベース・アクティベーションなど) で使用されます。 現在実行中の操作は、操作の開始時に有効な値を使用します。 詳しくは、 リカバリー・パフォーマンスの最適化を参照してください。
DB2_REDUCE_FLUSHING_DURING_BACKUP
  • オペレーティング・システム: すべて
  • デフォルト: OFF。値: ON | OFF
  • オンライン・バックアップ操作の開始時には、バッファー・プール内にある変更されたページを表スペース・ストレージに保存する必要があるため、非常に大きなバッファー・プールがある構成では、バックアップ操作の所要時間が長くなることがあります。 この変数は、オンライン・バックアップでバッファー・プール内にある変更されたページの簡易フラッシュを実行するかどうかを指定します。 簡易フラッシュを実行した場合は、オンライン・バックアップをリストアした後に必要になるロールフォワード操作の所要時間が長くなる可能性があります。
  • この変数の変更にデータベース・インスタンスの再始動は必要ありません。
  • この変数に変更を加えても、その変更時に既に実行されているオンライン・バックアップ操作には影響はありません。
  • DB2_WORKLOAD を SAP に設定した場合、DB2_REDUCE_FLUSHING_DURING_BACKUP は ON に設定されます。
DB2_RESOURCE_POLICY
  • オペレーティング・システム: AIX、 Linux、Windows
  • デフォルト = 設定なし。値: 構成ファイル (AIX、 Linux、Windows) または AUTOMATIC (AIX、 Linux、Windows) への有効なパス
  • リソース・ポリシーを定義します。それを使用して、Db2 データベースが使用するオペレーティング・システム・リソースを制御できます。あるいは、その定義の中に、特定のオペレーティング・システム・リソースを特定の Db2 データベース・オブジェクトに割り当てるための規則を組み込めます。 例えば、 AIX、 Linux、または Windows オペレーティング・システムでは、このレジストリー変数を使用して、 Db2 データベース・システムが使用するプロセッサーのセットを制限できます。 リソース制御の範囲は、オペレーティング・システムによって異なります。

    AIX 6.1 テクノロジー・レベル (TL) 5 以上、または任意の Linux または Windows オペレーティング・システムを実行する POWER7® システムでは、この変数を AUTOMATICに設定できます。 AUTOMATIC オプションを指定する場合、Db2 データベース・システムがハードウェアのトポロジーを自動的に判別し、エンジン・ディスパッチ可能単位 (EDU) をさまざまなハードウェア・モジュールに割り当てます。 この割り当ては、同じメモリー領域にアクセスする必要がある複数の EDU 間で、より効率的にメモリーを共有できるようにする方法で行われます。 また、AUTOMATIC 設定により、メモリーのアフィニティー化を有効にするかどうかも決まります。 このプロセスでは、EDU が処理の際にローカル・メモリーの割り振りを試行します。 この設定は、16 個以上のコアを持つ大規模な POWER7 システム、または任意の Linux または Windows オペレーティング・システムを対象としており、一部のワークロードの照会パフォーマンスを向上させることができます。 パフォーマンスの向上について確認するには、DB2_RESOURCE_POLICY 変数を AUTOMATIC に設定する前と後でワークロードのパフォーマンス分析を実行することが最善です。

    DB2_RESOURCE_POLICY パラメーターを AUTOMATICに設定すると、データベース・マネージャーは、 AIX トポロジー・インターフェースを介して表示されるすべての関連リソース・セットに対してリソース・グループを作成します。 Db2 インスタンスは、拡張アフィニティー・サポートを備えた POWER7 マシン上で実行する必要があります。拡張アフィニティー・サポートは、 AIX 6.1 TL5 以上で使用可能であり、デフォルトで有効になります。 サポートされるその他のプラットフォームでは、データベース・マネージャーは 1 つのリソース・グループを作成し、すべてのリソースをそのグループに組み込みます。

    このレジストリー変数を設定して、Db2 プロセスをオペレーティング・システム・リソースにバインドするときに使用するポリシーが定義された構成ファイルへのパスを指定できます。 リソース・ポリシーを使用することにより、 Db2 データベース・システムを制限するオペレーティング・システム・リソースのセットを指定できます。 各 Db2 プロセスはこのセットの単一リソースにバインドされます。 リソース割り当ては循環ラウンドロビン方式で行われます。 ワークロードの種類によっては、NUMA の特性を持つハードウェアでリソース・ポリシーが役立つことがあります。

    注: AIX の場合のみ、 DB2_RESOURCE_POLICY=AUTOMATIC を使用したり、RSET メソッドまたは SRAD メソッドを使用する構成ファイルを使用したりするには、インスタンス・アカウントに CAP_NUMA_ATTACH 機能と CAP_PROPAGATE 機能が必要です。 詳しくは、chuser コマンドに関する AIX の資料を参照してください。
    注: AIX の場合のみ、 PowerVM Dynamic Platform Optimizer が有効になっていると、SRAD リソース・タイプの使用はサポートされません。

    構成ファイルの例:

    例 1: すべての Db2 プロセスを CPU 1 または 3 のいずれかにバインドします。

    <RESOURCE_POLICY>  	
    		<GLOBAL_RESOURCE_POLICY>  
    			<METHOD>CPU</METHOD> 
    			<RESOURCE_BINDING> 
      		<RESOURCE>1</RESOURCE>	
    			</RESOURCE_BINDING>
    			<RESOURCE_BINDING>
    				<RESOURCE>3</RESOURCE>
    			</RESOURCE_BINDING>
    		</GLOBAL_RESOURCE_POLICY>
    	</RESOURCE_POLICY> 

    例 2: (AIX のみ) Db2 プロセスを次のいずれかのリソース・セットにバインドします。 sys/node.03.00000、 sys/node.03.00001、 sys/node.03.00002、 sys/node.03.00003

    <RESOURCE_POLICY>
    		<GLOBAL_RESOURCE_POLICY> 
    			<METHOD>RSET</METHOD> 
    			<RESOURCE_BINDING> 
    				<RESOURCE>sys/node.03.00000</RESOURCE> 
    			</RESOURCE_BINDING> 
    			<RESOURCE_BINDING> 
    				<RESOURCE>sys/node.03.00001</RESOURCE> 
    			</RESOURCE_BINDING> 
    			<RESOURCE_BINDING> 
    				<RESOURCE>sys/node.03.00002</RESOURCE> 
    			</RESOURCE_BINDING> 
    			<RESOURCE_BINDING> 
    				<RESOURCE>sys/node.03.00003</RESOURCE> 
    			</RESOURCE_BINDING> 
    		</GLOBAL_RESOURCE_POLICY> 
    	</RESOURCE_POLICY> 

    例 3: (Linux のみ) SAMPLE データベースに関連付けられているバッファー・プール ID 2 および 3 からすべてのメモリーを NUMA ノード 3 にバインドします。 また、データベース・メモリー全体の 80 % を NUMA ノード 3 にバインドし、残りの 20 % を非バッファー・プール固有のメモリーとしてすべてのノードでストライピングします。

    <RESOURCE_POLICY>
    		<DATABASE_RESOURCE_POLICY>
    			<DBNAME>sample</DBNAME>
    			<METHOD>NODEMASK</METHOD>
    			<RESOURCE_BINDING>
    				<RESOURCE>3</RESOURCE>
    				<DBMEM_PERCENTAGE>80</DBMEM_PERCENTAGE>
    				<BUFFERPOOL_BINDING>
    					<BUFFERPOOL_ID>2</BUFFERPOOL_ID>
    					<BUFFERPOOL_ID>3</BUFFERPOOL_ID>
     			</BUFFERPOOL_BINDING>
    			</RESOURCE_BINDING>
    		</DATABASE_RESOURCE_POLICY>
    	</RESOURCE_POLICY>
    

    例 4: ( Linux および Windows のみ) CPU マスク 0x0F および 0xF0によって指定された 2 つの別個のプロセッサー・セットを定義します。 Db2 プロセスおよびバッファー・プール ID 2 をプロセッサー・セット 0x0F にバインドし、Db2 プロセスおよびバッファー・プール ID 3 をプロセッサー・セット 0xF0 にバインドします。 各プロセッサー・セットで、データベース・メモリー全体の 50 % をバインディングに使用します。

    プロセッサーと NUMA ノードとの間でマッピングを行うことが望ましい場合、このリソース・ポリシーが有効です。 例えば、システムに 8 つのプロセッサーと 2 つの NUMA ノードがあるとすれば、プロセッサー 0 から 3 が NUMA ノード 0 に属し、プロセッサー 4 から 7 が NUMA ノード 1 に属する、といった具合になります。 このリソース・ポリシーを使用すると、メモリーの局所性を暗黙的に維持しながら、プロセッサーのバインディングを実装できます (つまり、CPU 方式と NODEMASK 方式のハイブリッド)。

    
     <RESOURCE_POLICY>
       <DATABASE_RESOURCE_POLICY>
         <DBNAME>sample</DBNAME>
         <METHOD>CPUMASK</METHOD>
         <RESOURCE_BINDING>
           <RESOURCE>0x0F</RESOURCE>
           <DBMEM_PERCENTAGE>50</DBMEM_PERCENTAGE>
           <BUFFERPOOL_BINDING>
             <BUFFERPOOL_ID>2</BUFFERPOOL_ID>
           </BUFFERPOOL_BINDING>
         </RESOURCE_BINDING>
         <RESOURCE_BINDING>
           <RESOURCE>0xF0</RESOURCE>
           <DBMEM_PERCENTAGE>50</DBMEM_PERCENTAGE>
           <BUFFERPOOL_BINDING>
             <BUFFERPOOL_ID>3</BUFFERPOOL_ID>
           </BUFFERPOOL_BINDING>
         </RESOURCE_BINDING>
       </DATABASE_RESOURCE_POLICY>
     </RESOURCE_POLICY>

    例 5: (AIX オペレーティング・システムのみ) リソース・ポリシー・ファイルでリソース・グループを指定することにより、リソース・グループ認識を手動で有効にすることができます。 RESOURCE_GROUP 要素を使用して、特定のリソース・グループに属するリソースを指定します。 定義済みのリソース・グループは、NUMA 境界に合わせて調整する必要はありません。 ENV_GET_DB2_EDU_SYSTEM_RESOURCES 表関数の RESOURCE_GROUP 列は、EDU が関連付けられるリソース・グループを示しています。

    2 つのリソース・グループを定義します。 それぞれには、4 つのスケジューラー・リソース・アフィニティー・ドメイン (SRAD) が含まれています。
    <RESOURCE_POLICY>
      <GLOBAL_RESOURCE_POLICY>
    
        <METHOD>SRAD</METHOD>
    
        <RESOURCE_GROUP>
          <RESOURCE_GROUP_NAME>TESTGROUP1</RESOURCE_GROUP_NAME>
    
          <RESOURCE_BINDING>
            <RESOURCE>0</RESOURCE>
          </RESOURCE_BINDING>
    
          <RESOURCE_BINDING>
            <RESOURCE>1</RESOURCE>
          </RESOURCE_BINDING>
    
          <RESOURCE_BINDING>
            <RESOURCE>2</RESOURCE>
          </RESOURCE_BINDING>
    
          <RESOURCE_BINDING>
            <RESOURCE>3</RESOURCE>
          </RESOURCE_BINDING>
    
        </RESOURCE_GROUP>
    
        <RESOURCE_GROUP>
          <RESOURCE_GROUP_NAME>TESTGROUP2</RESOURCE_GROUP_NAME>
    
          <RESOURCE_BINDING>
            <RESOURCE>4</RESOURCE>
          </RESOURCE_BINDING>
    
          <RESOURCE_BINDING>
            <RESOURCE>5</RESOURCE>
          </RESOURCE_BINDING>
    
          <RESOURCE_BINDING>
            <RESOURCE>6</RESOURCE>
          </RESOURCE_BINDING>
    
          <RESOURCE_BINDING>
            <RESOURCE>7</RESOURCE>
          </RESOURCE_BINDING>
    
        </RESOURCE_GROUP>
    
      </GLOBAL_RESOURCE_POLICY>
    </RESOURCE_POLICY>
    DB2_RESOURCE_POLICY レジストリー変数で指定された構成ファイルは、SCHEDULING_POLICY 要素を受け入れます。 プラットフォームによっては、SCHEDULING_POLICY 要素を使用して、次のものを選択できます。
    • Db2 サーバーが使用するオペレーティング・システムのスケジューリング・ポリシー

      AIX上の Db2 、および Windows 上の Db2 に対して、 DB2NTPRICLASS レジストリー変数を使用してオペレーティング・システムのスケジューリング・ポリシーを設定できます。

    • 個々の Db2 サーバー・エージェントが使用するオペレーティング・システム優先順位

    あるいは、レジストリー変数 DB2PRIORITIES および DB2NTPRICLASS を使用して、オペレーティング・システムのスケジューリング・ポリシーを制御し、 Db2 エージェントの優先順位を設定することができます。 なお、リソース・ポリシー構成ファイル内の SCHEDULING_POLICY 要素の仕様上、スケジューリング・ポリシーとそれに関連したエージェントの優先順位の両方を 1 つの場所で指定する必要があります。

    例 1: Db2 ログ・ライターおよびログ・リーダー・プロセスの優先順位を上げる AIX SCHED_FIFO2 スケジューリング・ポリシーの選択。

    	<RESOURCE_POLICY> 
    		<SCHEDULING_POLICY>
    			<POLICY_TYPE>SCHED_FIFO2</POLICY_TYPE>
    			<PRIORITY_VALUE>60</PRIORITY_VALUE>
    
    			<EDU_PRIORITY>
    				<EDU_NAME>db2loggr</EDU_NAME>
    				<PRIORITY_VALUE>56</PRIORITY_VALUE>
    			</EDU_PRIORITY>
    
    			<EDU_PRIORITY>
    				<EDU_NAME>db2loggw</EDU_NAME>
    				<PRIORITY_VALUE>56</PRIORITY_VALUE>
    			</EDU_PRIORITY>
    		</SCHEDULING_POLICY>
    	</RESOURCE_POLICY>

    例 2: Windows での DB2NTPRICLASS=H の代わりの方法。

    	<RESOURCE_POLICY> 
    		<SCHEDULING_POLICY>
    			<POLICY_TYPE>HIGH_PRIORITY_CLASS</POLICY_TYPE>
    		</SCHEDULING_POLICY>
    	</RESOURCE_POLICY>
DB2_SELUDI_COMM_BUFFER
  • オペレーティング・システム: すべて
  • デフォルト = OFF。値: ON または OFF
  • この変数は、UPDATE、INSERT、または DELETE (UDI) 照会から、カーソルを SELECT でブロックする処理中に使用されます。 使用可能になっていると、このレジストリー変数は照会の結果が 一時表に保管されないようにします。 その代わりに、UDI 照会からカーソルを SELECT でブロックするための OPEN 処理中に、Db2 データベース・システムは照会の結果全体を通信バッファー・メモリー領域に直接バッファーしようとします。
    注: 通信バッファー・スペースが照会の結果全体を保持するのに十分な大きさでない場合は、SQLCODE -906 エラーが発行され、トランザクションはロールバックされます。 ローカル・アプリケーションおよびリモート・アプリケーションそれぞれの 通信バッファー・メモリー領域のサイズの調整については、 aslheapsz および rqrioblk データベース・マネージャー構成パラメーターを参照してください。

    パーティション内並列処理が使用可能である場合には、このレジストリー変数はサポートされません。

    この変数に対する変更は、db2set コマンドに -immediate パラメーターを指定して発行すると、その後コンパイルされるすべての SQL ステートメントに対してただちに有効になります。 インスタンスを再始動する必要はありません。

DB2_SET_MAX_CONTAINER_SIZE
  • オペレーティング・システム: すべて
  • デフォルト = 設定なし。値: -1、65 536 バイトより大きい任意の正整数
  • このレジストリー変数を使うと、AutoResize フィーチャーが有効になった自動ストレージ表スペース用の個々のコンテナーのサイズを制限することができます。
    注: DB2_SET_MAX_CONTAINER_SIZE はバイト単位、キロバイト単位、またはメガバイト単位で指定できますが、 db2set はその値をバイト単位で示します。
  • 値を -1 に設定すると、コンテナーのサイズに対する制限はなくなります。
DB2_SKIPDELETED
  • オペレーティング・システム: すべて
  • デフォルト = OFF。値: ON または OFF
  • この変数が使用可能になっていると、カーソル固定分離レベルまたは読み取り固定分離レベルのいずれかを使用するステートメントは、索引アクセス中に削除されたキー、および表アクセス中に削除された行を無条件でスキップすることができます。 DB2_EVALUNCOMMITTED を有効にすると、削除された行は自動的にスキップされますが、 索引内の コミットされていない疑似削除キーは、 DB2_SKIPDELETED も有効になっていない限りスキップされません。 Currently Committed (CC) を適用できないスキャンだけがこれらの変数を考慮します。

    DB2_SKIPDELETED は、currently committed セマンティクスではロック競合の回避に役立たない場合にのみ適用可能です。 この変数が設定されていて、currently committed がスキャンに適用可能な場合、削除された行はスキップされません。代わりに、それらの行の現在コミット済みバージョンが処理されます。

    このレジストリー変数は、 Db2 カタログ表に対する内部照会の動作には影響しません。 レジストリー変数 DB2COMPOPTLOCKAVOID_EXT_CATSCANSに設定されている場合にのみ、ユーザー・カタログ・スキャンに適用できます。

    このレジストリー変数は、db2start コマンドによって活動化されます。

DB2_SKIPINSERTED
  • オペレーティング・システム: すべて
  • デフォルト = OFF。値: ON または OFF
  • DB2_SKIPINSERTED レジストリー変数が使用可能になっていると、カーソル固定分離レベルまたは読み取り固定分離レベルのいずれかを使用するステートメントは、非コミットの挿入行を、それらが挿入されなかったかのようにスキップすることができます。 このレジストリー変数は、 Db2 カタログ表に対する内部照会の動作には影響しません。 レジストリー変数 DB2COMPOPTLOCKAVOID_EXT_CATSCANSに設定されている場合にのみ、ユーザー・カタログ・スキャンに適用できます。 このレジストリー変数は、データベースの始動時に活動化されますが、非コミットの挿入行のスキップは、ステートメントのコンパイル時またはバインド時に決定されます。

    currently committed セマンティクスが使用されている場合、このレジストリー変数の効果はありません。 つまり、DB2_SKIPINSERTEDOFF に設定されていても、currently committed 動作が有効になっていれば、挿入されてもコミットされていない行はスキップされます。

    注: 挿入をスキップする動作は、ロールアウト・クリーンアップが保留されている表と互換性がありません。 その結果、スキャナーが RID に対するロックを待機しても、その RID はロールアウト済みブロックの一部であることを発見するだけです。
DB2_SMP_INDEX_CREATE
  • オペレーティング・システム: すべて
  • デフォルト = 設定なし。値: 2 から 1000
  • この動的レジストリー変数は、索引の作成または再作成時に索引データをスキャンおよびソートするのに使用される、デフォルトのエージェント数をオーバーライドします。 このレジストリー変数は、索引マネージャー・コンポーネントが並列処理が保証されていることを判別するときにのみチェックされます。 その判別は、表サイズおよび複数のプロセッサーが存在するかどうかを含む、多くの考慮事項に基づいています。

    DB2_SMP_INDEX_CREATE は、ゼロ以外の値が設定されるときにのみ有効です。 索引データをスキャンおよびソートするのに使用されるエージェント数が増加するとき、データベース構成パラメーター sortheap および sheapthres_shr が適切に設定されていることを確認することが重要です。 ソートに多くのメモリーが使用可能であればあるほど (sheapthres_shr パラメーターによって指定される)、索引データのソートがシステムの TEMPORARY 表スペースに一時結果を書き込むことが必要になる可能性は低くなります。 ソートはディスクにスピルしない場合、さらに速くなります。 さらに、ソートに参加している各エージェントが同量のメモリーを取得するようにするには、sortheap パラメーターが sheapthres_shr/n 以下の値に設定される必要があります。 ここで、n は索引表をスキャンおよびソートするのに使用されるエージェント数です。

DB2_SMS_TRUNC_TMPTABLE_THRESH
  • オペレーティング・システム: すべて
  • デフォルト = -2。値: -2-10 から n。(n = SMS 表スペース・コンテナー内の一時表ごとに保持されるエクステントの数)
  • この変数は、一時表を表すファイルを SMS 表スペースに保持する際の、最小ファイル・サイズしきい値を指定します。

    この変数のデフォルト設定値は -2 です。 つまり、予備 SMS 一時オブジェクトのうち、そのサイズが「1 エクステント * コンテナー数」以下のオブジェクトに関しては、不要なファイル・システム・アクセスが生じないという意味です。 これより大きい一時オブジェクトは、切り捨てられて 0 エクステントになります。

    この変数が 0 に設定されている場合、特殊しきい値処理は実行されません。 その代わり、一時表が不要になると、 そのファイルは切り捨てられて 0 エクステントになります。 この変数の値を 0 より大きくすると、より大きなファイルが保持されるようになります。 しきい値よりも大きいオブジェクトは、切り捨てられてしきい値のサイズになります。 これにより、一時表が使用されるごとのファイルのドロップおよび再作成に関係するシステム・オーバーヘッドが若干減少します。

    この変数が -1 に設定されている場合は、ファイルが切り捨てられることはなく、ファイルはシステム・リソースによる制限を除いて 無制限に増大します。

DB2_SORT_AFTER_TQ
  • オペレーティング・システム: すべて
  • デフォルト =NO。値: YES または NO
  • 受信終了時にデータをソートすることが必要で、受信ノード数が送信ノード数と等しい場合、 パーティション・データベース環境内の指示された表キューをオプティマイザーが処理する方法を指定します。

    DB2_SORT_AFTER_TQ=NO の場合、 オプティマイザーは送信終了時には行のソートを、受信終了時には行のマージを行う傾向があります。

    DB2_SORT_AFTER_TQ=YES の場合、 オプティマイザーはソートをしないで行を送信し、 すべての行を受信した後の受信終了時にもマージを行わない傾向があります。

    この変数に対する変更は、db2set コマンドに -immediate パラメーターを指定して発行すると、その後コンパイルされるすべての SQL ステートメントに対してただちに有効になります。 インスタンスを再始動する必要はありません。

DB2_SQLWORKSPACE_CACHE
  • オペレーティング・システム: すべて
  • デフォルト: 30、値: 10-50000
  • この変数により、SQL 作業スペースで以前使用されていたセクションのキャッシングの量を制御することができます。

    SQL 作業スペースには、SQL の実行の割り振りが、セクションの形式で含まれています。 アプリケーションに代わって実行される各 SQL ステートメント (静的または動的) は、そのステートメントが実行される間、セクションの固有のコピーを SQL 作業スペースに保持する必要があります。 ステートメントの実行が完了した後、セクションは非アクティブになります。非アクティブ・セクションと関連付けられているメモリー割り振りは、解放することも、SQL 作業スペースのキャッシュに入れたままにすることもできます。 いずれかの接続から同じ SQL ステートメントを新たに実行したときに、前回の実行で残された SQL 作業スペースのセクションのキャッシュ・コピーをそのステートメントが見つけると、セクションの新規コピーの割り振りと初期化に関連したコストを省くことができます。 このように、SQL 作業スペースには、アクティブ・セクション (現時点で実行されている SQL に対応するもの) とキャッシュ・セクション (現時点では実行されていないもの) の両方が含まれます。

    このレジストリー変数の値は、SQL 作業スペースのキャッシュに残しておくことができるメモリー割り振りのパーセンテージを指定します。 このキャッシュは、アクティブ・セッションに対するメモリー割り振りのパーセンテージで表されます。 例えば、値が 50 の場合、すべてのアクティブ (現在実行されている) セクションと、さらに最大 50 % のキャッシュ・セクション (前回実行され、再利用可能なセクション) が SQL 作業スペースに含まれていることを意味します。 再利用可能にする SQL 作業スペースの量に基づいて DB2_SQLWORKSPACE_CACHE の設定を調整します。 例えば、この変数のサイズを増やすと、OLTP ワークロードのパフォーマンスをいくらか改善することができます。 一方、設定値を増やすと、アプリケーション共有ヒープのサイズが増えることにもなります。
    注: appl_memory データベース構成パラメーターが AUTOMATICに設定されていない場合、SQL ワークスペースのサイズも appl_memory によって制限される可能性があり、SQL ワークスペースは DB2_SQLWORKSPACE_CACHE 設定で可能な限り多くのキャッシングを提供しない可能性があります。そのような場合は、 appl_memory を増やす (または AUTOMATICに設定する) ことを検討してください。
    このレジストリー変数は、動的ではありません。
DB2_TRUST_MDC_BLOCK_FULL_HINT
  • オペレーティング・システム: すべて
  • デフォルト: OFF。値: ON または OFF
  • MDC 表にレコードを挿入するとき、Db2 は、挿入されている新規レコードと同じディメンション値を持つブロックを複合ブロック索引から検索します。 次に、それらのブロックは、新規レコードのために十分なフリー・スペースがあるかどうかを判別するためにチェックされます。 十分なフリー・スペースがないとチェックされたブロックの場合、Db2 はそのブロックに対して、複合ブロック索引で Full_Block ビットを設定します。 指定されたディメンション値のブロックのリストが長く、それらのブロックのほとんどが満杯である場合には、かなりの時間が検索に費やされます。

    DB2_TRUST_MDC_BLOCK_FULL_HINT 変数が設定されている場合、 Db2 は、複合ブロック索引の Full_Block ビットでマークされているブロック内のフリー・スペースの検索をスキップします。 この Full_Block ビットは、ブロック全体が削除されたとき、および REORG コマンドを使用して複合ブロック索引が再作成されたときにのみクリアされるため、ヒントにすぎません。 トレードオフとは、ロールアウト削除によってブロックを完全に空にするのと対照的に、それらを部分的に空にする削除が実行される場合に、いくつかのフリー・スペースが浪費される可能性があるということです。 ロールアウト削除について詳しくは、『MDC 表の最適化ストラテジー』のトピックの『ロールバック削除』を参照してください。

DB2_TRUSTED_BINDIN
  • オペレーティング・システム: すべて
  • デフォルト = OFF。値: OFFON、または CHECK
  • DB2_TRUSTED_BINDIN が使用可能になっていると、 組み込み unfenced ストアード・プロシージャー内にホスト変数を含む照会ステートメントの実行速度が増します。

    この変数が使用可能になっていると、組み込み unfenced ストアード・プロシージャー内に含まれる SQL および XQuery ステートメントのバインド中に外部 SQLDA フォーマットから内部 Db2 フォーマットへの変換は行われません。 これにより、組み込み SQL および XQuery ステートメントの処理速度が増します。

    この変数が使用可能になっている場合、以下のデータ・タイプは組み込み unfenced ストアード・プロシージャーでサポートされません。

    • SQL_TYP_DATE
    • SQL_TYP_TIME
    • SQL_TYP_STAMP
    • SQL_TYP_CGSTR
    • SQL_TYP_BLOB
    • SQL_TYP_CLOB
    • SQL_TYP_DBCLOB
    • SQL_TYP_CSTR
    • SQL_TYP_LSTR
    • SQL_TYP_BLOB_LOCATOR
    • SQL_TYP_CLOB_LOCATOR
    • SQL_TYP_DCLOB_LOCATOR
    • SQL_TYP_BLOB_FILE
    • SQL_TYP_CLOB_FILE
    • SQL_TYP_DCLOB_FILE
    • SQL_TYP_BLOB_FILE_OBSOLETE
    • SQL_TYP_CLOB_FILE_OBSOLETE
    • SQL_TYP_DCLOB_FILE_OBSOLETE

    これらのデータ・タイプが見つかると、SQLCODE -804、SQLSTATE 07002 エラーが戻されます。

    注: 入力ホスト変数のデータ・タイプと長さは、対応するエレメントの内部データ・タイプと長さと正確に一致していなければなりません。 ホスト変数の場合、この要件は常に満たされます。 しかし、パラメーター・マーカーの場合、データ・タイプが一致しているか確認する必要があります。 データ・タイプと長さがすべての入力ホスト変数と一致しているかどうかの確認に CHECK オプションを使用できますが、このオプションは大抵パフォーマンスを低下させます。
    注: DB2_TRUSTED_BINDIN は非推奨になっており、今後のリリースで削除される予定です。
DB2_USE_ALTERNATE_PAGE_CLEANING
  • オペレーティング・システム: すべて
  • デフォルト = 設定なし。値: ON または OFF
  • この変数は、 Db2 データベースがページ・クリーニング・アルゴリズムの代替方式、またはデフォルトのページ・クリーニング方式を使用するかどうかを指定します。 この変数が ON に設定されると、Db2 システムは、変更されたページをディスクに書き込み、LSN_GAP を保持し、積極的に対象を検索します。 これを行うことにより、 ページ・クリーナーは使用可能なディスク I/O 帯域幅をより効果的に使用できます。 この変数が ON に設定されると、chngpgs_thresh データベース構成パラメーターはページ・クリーナー・アクティビティーを制御しないので、関係がなくなります。
DB2_USE_ASYNC_FOR_MIRRORLOG
  • オペレーティング・システム: Unix
  • デフォルト: ON。値: ON | OFF
  • この変数を活動化すると、ミラーリングされたログ・パスを使用して構成されたデータベースのログ書き込みのパフォーマンスを向上させることができます。 アクティブ・ログとミラー・ログの両方の書き込みが並行して行われるように、ログ・データをミラーリングされたパスに非同期に書き込むことにより、パフォーマンスが向上します。
  • この変数を変更するには、データベースを非アクティブ化してから再アクティブ化する必要があります。
  • Db2 では、Windows においてこの環境変数を有効にすることは許可されていません。
重要: AIX システムで DB2_USE_ASYNC_FOR_MIRRORLOG 変数を有効にする場合は、 入出力完了ポート (IOCP) も有効にしてください。 IOCP では、AIX の非同期入出力の実行方法と、非同期入出力の完了時に AIX がユーザーに通知を送る方法を定義します。 ミラー・ログ変数では、ミラー・ロギングで非同期入出力または同期入出力のどちらを使用するかを定義するので、ミラー・ロギングのパフォーマンスに影響が及びます。

デフォルトでは、ミラー・ロギングと IOCP の両方が有効になります。 一方、IOCP を無効にして非同期入出力を使用すると、パフォーマンスが低下し、IOCP に依存しているミラー・ロギングにも影響が出ます。

DB2_USE_BUFFERED_READ_FOR_ACTIVE_LOG
  • オペレーティング・システム: すべて
  • デフォルト = YES。値: YES または NO
  • この変数は、トランザクション・ログ・ファイルのデータを読み取るときに、バッファーを介した入出力を自律的に使用することで、大きな作業単位のロールバック処理のパフォーマンスを大幅に改善できるようにするかどうかを指定します。
  • この変数の変更にデータベース・インスタンスの再始動は必要ありません。
DB2_USE_FAST_PREALLOCATION
  • オペレーティング・システム: Veritas VxFS、 JFS2、GPFS、 ext4 (Linux のみ) および xFS (Linux のみ) ファイル・システム上の AIX および Linux
  • デフォルト: ON (Veritas VxFS、 JFS2、GPFS、 ext4 および xFSの場合)。値: ON または OFF
  • 高速事前割り振りファイル・システム・フィーチャーが表スペースを予約できるようにして、LARGE 表スペースの作成または変更、およびデータベース・リストア操作の処理速度が上がるようにします。 この速度向上のための実装上の差分コストは、実行時に行が挿入されるときに実際のスペース割り振りが行われるいう小さなものです。

    高速事前割り振りを使用不可にするには、DB2_USE_FAST_PREALLOCATION を OFF に設定します。 これにより、実行時のパフォーマンスが向上する可能性がありますが、同じ表スペースで大量の挿入と選択が行われるオペレーティング・システム (特に AIX) では、表スペースの作成とデータベースのリストアにかかる時間が長くなることがあります。 高速事前割り振りを無効に設定した場合はデータベースを再始動する必要があるので注意してください。

DB2_USE_FAST_LOG_PREALLOCATION
  • オペレーティング・システム: Veritas VxFS、 JFS2、GPFS、 ext4 (Linux のみ) および xFS (Linux のみ) ファイル・システム上の AIX および Linux
  • デフォルト: DB2_WORKLOAD=SAP の場合 OFFON、値: ON または OFF
  • 基礎のとなるファイル・システムがこの機能をサポートする場合、高速事前割り振りファイル・システム・フィーチャーがログ・ファイルのスペースを予約できるようにして、大規模なログ・ファイルの作成または変更の処理速度が上がるようにします。 そのような事前割り振りしたログ・ファイルにログ・レコードが書き込まれる際の実行時に実際のスペース割り振りが実行されますが、そのような小さな差分コストでこの速度向上が実現されます。

    ログの高速事前割り振りを使用可能にするには、DB2_USE_FAST_LOG_PREALLOCATION を ON に設定します。

  • この変数に対する変更は、次のログ・ファイルの割り振り時に即時に有効になります。 変更は、データベース・インスタンスを再始動したり、データベースを非アクティブ化してアクティブ化したりする必要なしに適用されます。
DB2_USE_IOCP
  • オペレーティング・システム: AIX
  • デフォルト = ON。値: ON または OFF
  • この変数は、非同期入出力 (AIO) 要求を実行依頼および収集するときに、 AIX 入出力完了ポート (IOCP) を使用できるようにします。 このフィーチャーは、Non-Uniform Memory Access (NUMA) 環境でリモート・メモリー・アクセスを回避してパフォーマンスを向上させるために使用します。
DB2_4K_DEVICE_SUPPORT
  • オペレーティング・システム: すべて
  • デフォルト = OFF。値: ON または OFF
  • 4 K セクター・サイズを使用するストレージ・デバイスのサポートを有効にするには、この変数を ON に設定してください。 この設定により、データ構造のメモリー・レイアウトとディスク入出力操作のパラメーターが、このタイプのストレージの要件と適合するように調整されます。 512 バイトのセクター・サイズを使用するストレージ・デバイスを構成した環境でこの設定を有効にすると、パフォーマンスが低下する可能性があります。
  • この変数の変更にはデータベース・インスタンスの再始動が必要です。
  • 現時点では、この環境変数を ON に設定すると、以下の制限や制約が発生します。
    • 直接ディスク (ロー) アクセスが構成されているデータベース管理 (DMS) 表スペースを使用することはサポートされません。
    • NO FILESYSTEM CACHING で構成されているシステム管理 (SMS) 表スペースの使用はサポートされていません。
    • ワークロードの特性によっては、ラージ・オブジェクト (LOB) データへのアクセスのパフォーマンスが低下する可能性があります。
    • 4 KB セクターのサポートを有効にする前に作成したバックアップ・イメージまたはロード・コピー・ファイルは、それぞれリストアまたは処理するときに、パフォーマンスが低下する可能性があります。
    • バックアップ・イメージとロード・コピー・ファイルのサイズが多少大きくなります。