DB2レジストリ変数

   DB2では構成パラメータ以外に、DB2レジストリ変数を利用してDB2の設定を行うことができます。設定項目のカテゴリとしては、汎用レジストリ 変数/システム環境変数/通信変数/コマンド行変数/MPP環境変数/SQLコンパイラ変数/パフォーマンス変数/データリンク変数などの変数がありま す。

   現在設定されている内容を確認するには、「db2set -all」を使います。

確認例


[db2inst1@db2server tpcc]$ db2set -all
[i] DB2COMM=TCPIP
[i] DB2_PARALLEL_IO=*
[g] DB2SYSTEM=db2server

   上記の「[i]」は、1つのインスタンス(この例ではdb2inst1)のみでの指定であることを示しています。「[g]」は、このLinuxサーバマシンにあるすべてのインスタンスに共通の指定という意味です。

   設定を行うには、「db2set レジストリ変数=値」のように入力します。

設定例


db2set DB2COMM=TCPIP
db2set DB2_PARALLEL_IO=*
db2set -g DB2SYSTEM=db2server

   Linux環境で使用可能な「パフォーマンス変数」のカテゴリに属するDB2レジストリ変数は、約30ほどあります。デフォルト設定で十分なものも多くありますので、それらを除き、チューニングの際に検討する機会が比較的多い10個の変数を以下に紹介します。

DB2_APM_PERFORMANCE=ON

   1つ1つの実行時間が非常に短く、シンプルな動的SQLを複数ユーザにて大量に処理している場合、この指定により、パッケージ・キャッシュの内部的なロック処理を行わないようにすると、処理性能が向上する場合があります。

   考慮点として、この設定のままでは、組み込みSQLで作成されたアプリケーションのバインド処理を行うことができないということがあります(設定を戻して行う必要があります)。

DB2_EVALUNCOMMITTED=YES_DEFERISCANFETCH数

   SELECT処理で行を読み取る場合に、DB2はデフォルトでは必ず行ロックを行います。しかしこの指定をすると、行ロックを取る前に先に値を確認 し、もしもこの行がSELECTの条件に合致しない場合には、ロックを取らず読み飛ばしていく処理を行います。これにより、読み取ろうとして行が更新途中 で更新ロックを保持している場合でも、読み取りのロック待ちを減らすことができ、処理性能が向上する場合があります。

   ただし、分離レベル(isolation level)がRR(反復可能読み取り)の場合には利用できません。RS(読み取り固定)またはCS(カーソル固定)の場合のみ可能です。また、インデッ クスはV8からサポートされたタイプ2インデックスが前提となります。

   マニュアルには、設定値として「YES」のみ載っていますが、「=YES」を指定すると、この処理が可能となるSELECT処理のアクセス・プラン が単純な表スキャンあるいはインデックス・アクセスのみのスキャンに限り有効です。インデックス経由でデータ行にアクセスするパターンでも同様の動作とす るには、「YES_DEFERISCANFETCH」を指定します。これは、V8 Fixpak9より利用可能です。

DB2_LARGE_PAGE_MEM=*(など)

   Large PageをサポートしているLinuxを使用している場合に、DB2のメモリをLarge Pageで利用するように指定します。大きなメモリサイズを利用する場合に、DB2の内部的な管理オーバーヘッドが少なくなり、性能が向上する場合があり ます。

   設定値を「=*」とすると、すべてのDB2のメモリがLarge Pageとなります。「=DB」とすると、データベースグローバル・メモリがLarge Pageとなります。「=PRIVATE」とすると、エージェント専用メモリがLarge Pageとなります。また、「=DB,PRIVATE」という指定も可能です。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30