9.5.2 システム運用時の考慮点
トランザクション又はコマンド(ユティリティを含む)の実行時,次に示す現象が発生して通信エラーとなることがあります。その結果,トランザクション又はコマンドがエラーとなったり,ホスト間監視によって,ユニットの異常が検知(KFPS05289-Eメッセージが出力)されたりすることがあります。
-
システムで使用するポート数が不足する
ユニット又はサーバ数が多い場合,HiRDBのサーバ間通信の接続数が増加し,システムで使用するポート数が不足することがあります。
-
ネットワーク帯域が不足する
ユニット又はサーバ数が多い場合,HiRDBのサーバ間通信の接続数が増加し,ネットワーク帯域が不足することがあります。
このような現象が発生した場合,次に示す方法で通信負荷を軽減してください。
- 〈この項の構成〉
(1) pdloadコマンドの実行時に通信負荷を軽減する方法
pdloadコマンドを実行する場合,入力ファイルを分割格納条件ごとに作成し,RDエリア単位にpdloadコマンドを実行すると,通信負荷を軽減できます。
また,作成した複数の入力ファイルを1か所(同一サーバマシン上)に配置するのではなく,表格納RDエリアがあるサーバマシンに配置すると,通信負荷を軽減できます。
(2) pdrorgコマンドの実行時に通信負荷を軽減する方法
pdrorgコマンドで表の再編成,表のアンロード,表のリロードを実行する場合,RDエリア単位又はサーバ単位でpdrorgコマンドを実行すると,通信負荷を軽減できます。
pdrorgコマンドでインデクスの再作成,インデクスの再編成,インデクスの一括作成を実行する場合,インデクス単位又はサーバ単位でpdrorgコマンドを実行すると,通信負荷を軽減できます。
(3) pdcopy又はpdrstrコマンドの実行時に通信負荷を軽減する方法
pdcopy又はpdrstrコマンドを実行する場合,次に示す方法で通信負荷を軽減できます。
-
-sオプションにサーバ名を一つだけ指定してコマンドを実行する
-
-rオプションに複数のRDエリア名を指定する場合,同じバックエンドサーバに属するRDエリアだけを指定してコマンドを実行する
また,コマンドの処理対象となるサーバマシンにバックアップファイルを配置すると,通信負荷を軽減できます。
(4) SQLの実行時に通信負荷を軽減する方法
一つのトランザクションで複数のバックエンドサーバ下のデータをアクセスする場合,サーバ間でデータ通信が発生するため,サーバ間のデータ通信経路を極力減らすようにしてください。次に示す条件を一つでも満たす場合,複数のバックエンドサーバ下のデータをアクセスします。
-
複数のバックエンドサーバに横分割した表を指定したSQLを発行する
-
FROM句に二つ以上の表を指定したSQLを発行する
-
副問合せを指定したSQLを発行する
-
集合演算を指定したSQLを発行する
-
共用表のデータを更新するSQLを発行する
-
同一トランザクション内に複数のSQLを発行する場合,それぞれのSQLのFROM句に異なるバックエンドサーバに定義された表を指定する
これらの条件を一つでも満たす場合は,次に示す対策をして,サーバ間のデータ通信経路を削減してください。
-
横分割表の分割数を少なくする
-
SQLの探索条件に分割キーに対する条件を指定する
-
表の結合時は,対象となる表の分割を合わせ,結合キーを分割キーとする
-
トランザクションがアクセスする複数の表のデータを同じバックエンドサーバに格納する
(5) フロータブルサーバの使用時に通信負荷を軽減する方法
フロータブルサーバを使用すると通信負荷が上がるため,フロータブルサーバを極力使用しないでください。次に示す条件を一つでも満たす場合,フロータブルサーバが使用されます。
-
FROM句に二つ以上の表を指定したSQLを発行する(結合方式にネストループジョインを適用する場合を除く)
-
副問合せを指定したSQLを発行する
-
集合演算を指定したSQLを発行する
-
ORDER BY句を指定したSQLを発行する(ORDER BYのためのソート処理をしなくても,インデクスを検索することでORDER BYに含まれる列のソート順を保証できる場合を除く)
-
GROUP BY句を指定したSQLを発行する
-
DISTINCTを指定したSQLを発行する
-
ビュー表,WITH句,又はFROM句に導出表を指定したSQLを発行する(ビュー表,WITH句を指定したSQLで内部導出表を作成しない場合を除く)
内部導出表を作成する条件については,マニュアル「HiRDB Version 9 SQLリファレンス」を参照してください。
-
FOR READ ONLY句を指定したSQLを発行する
これらの条件を一つでも満たす場合は,次に示す対策をすると,使用するフロータブルサーバ数を削減できることがあります。
-
SQL最適化オプションに"FLTS_ONLY_DATA_BES"を指定する
-
SQL最適化オプションに"SORT_DATA_BES"を指定する
SQL最適化オプションについては,マニュアル「HiRDB Version 9 UAP開発ガイド」を参照してください。
(6) 共用表の使用時に通信負荷を軽減する方法
複数のフロントエンドサーバを経由して共用表を更新すると,通信負荷が上がります。そのため,共用表の更新をする場合は,HiRDBクライアントが接続するフロントエンドサーバができるだけ同じになるようにしてください。
(7) ユティリティの同時実行数に関する注意事項
バックエンドサーバ数が多い場合,ユティリティの同時実行数が多いと,ユティリティが異常終了することがあります。この場合,同時に実行するユティリティの数を減らすなどの対処をしてください。
(8) 制限事項
-
ユニット数が65以上の場合,MIBパフォーマンス情報監視機能は使用できません。