スケーラブルデータベースサーバ HiRDB Version 8 システム導入・設計ガイド(Windows(R)用)
HiRDB/パラレルサーバで64ユニットを超える大規模なシステムを構築する場合は,次の点を考慮してください。
- <この節の構成>
- (1) 通信資源
- (2) 注意事項
HiRDBで使用するポートを固定することによって,通信負荷を減らせます。HiRDBで使用するポートを固定する場合には,システム定義で次のように指定してください。
- pd_name_fixed_port_lookupオペランドにYを指定して,自ユニットの共用メモリ情報で他ユニットとの通信をするようにしてください。また,併せて次のオペランドを指定してください。
- pd_mlg_portオペランド,又はpdunitオペランドの-mオプション
- pd_alv_portオペランド,又はpdunitオペランドの-aオプション
- pd_trn_portオペランド,又はpdunitオペランドの-tオプション
- pd_scd_portオペランド,又はpdunitオペランドの-sオプション
- pd_name_portオペランド,又はpdunitオペランドの-pオプション
また,通信処理の性能向上のため,次の指定をしてください。
- pd_ipc_conn_nblock_timeオペランドに2を指定してください。HiRDBのサーバ間通信の場合に,稼働していないサーバがあったとき,このオペランドの指定値が大き過ぎるとタイムアウトまでの待ち時間が延びてしまいます。
- pd_bes_connection_holdオペランドにYを指定してください。
- UAPの接続時間(SQLのCONNECTからDISCONNECTまでの間)が短いシステムの場合は,pd_bes_conn_hold_trn_intervalオペランドに0を指定してください。
- クライアント側では,高速接続機能を使用してください。高速接続機能については,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。
- トランザクションが複数のバックエンドサーバにわたるデータをアクセスする場合,サーバ間のデータ通信経路を極力減らすようにしてください。次のどれかに該当する場合,複数のバックエンドサーバにわたるデータをアクセスします。
- 複数のバックエンドサーバに横分割した表を指定したSQLを発行する
- FROM句に二つ以上の表を指定したSQLを発行する
- 副問合せを指定したSQLを発行する
- 集合演算を指定したSQLを発行する
- 共用表のデータを更新するSQLを発行する
- 同一トランザクション内に複数のSQLを発行する場合,それぞれのSQLのFROM句に異なるバックエンドサーバに定義された表を指定する
上記のどれかに該当する場合は,次の対策をすることでサーバ間のデータ通信経路を削減できます。
- 横分割表の分割数を少なくする
- SQLの探索条件に分割キーに対する条件を指定する
- 表の結合時は,対象となる表の分割を合わせ,結合キーを分割キーとする
- トランザクションがアクセスする複数の表のデータを同じバックエンドサーバに格納する
- フロータブルサーバを極力使用しないでください。次のどれかに該当する場合,フロータブルサーバを使用します。
- FROM句に二つ以上の表を指定したSQLを発行する(結合方式にネストループジョインを適用する場合を除く)
- 副問合せを指定したSQLを発行する
- 集合演算を指定したSQLを発行する
- ORDER BY句を指定したSQLを発行する(ORDER BYのためのソート処理をしなくても,インデクスを検索することでORDER BYに含まれる列のソート順を保証できる場合を除く)
- GROUP BY句を指定したSQLを発行する
- DISTINCTを指定したSQLを発行する
- ビュー表,WITH句,又はFROM句に導出表を指定したSQLを発行する(ビュー表,WITH句を指定したSQLで内部導出表を作成しない場合を除く)
内部導出表の条件については,マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。
- FOR READ ONLY句を指定したSQLを発行する
上記に該当する場合は,次の対策をすることで使用するフロータブルサーバ数を削減できることがあります。
- SQL最適化オプションに"FLTS_ONLY_DATA_BES"を指定する
- SQL最適化オプションに"SORT_DATA_BES"を指定する
SQL最適化オプションについては,マニュアル「HiRDB Version 8 UAP開発ガイド」を参照してください。
- 64ユニットを超える構成の場合には,MIBパフォーマンス情報監視機能は使用できません。
- 複数のフロントエンドサーバを経由して共用表の更新をしないでください。共用表の更新をする場合には,クライアントが接続するフロントエンドサーバができるだけ同じになるようにしてください。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.