Symfoware Serverにおけるインデックス検索の高速化について

インデックス検索に時間がかかります。検索を高速化するためにはどうすればよいでしょうか?
インデックス検索の高速化の方法としてwork_memパラメータによるチューニングがあります。

work_memパラメータは、以下の2つの操作のメモリ容量を設定するパラメータです。
  ・メモリ内部でのデータの並べ替え
  ・ハッシュテーブル操作

このパラメータを増やすことでディスクスワップが減少し、インデックス検索を高速化することができます。
また、パラメータの設定はpostgresql.confファイルの編集または、SET文によりセッションごとに変更することができます。

ただし、同時に並べ替えとハッシュ操作が実行されると、それぞれの処理に対してwork_memの指定値が適用されるため、大量のメモリ消費に注意してください。

詳細は以下のマニュアルを参照してください。

FUJITSU Software Symfoware Server V12.1.0
  PostgreSQL 9.2.4文書
    18.4.1. メモリ


なお、上記以外の製品バージョン/レベルについては、該当するマニュアル箇所を参照してください。

また、OSがLinuxかつ、検索が全件絞込みのような広範囲を検索する場合、OSのディスク先読み量を調整することで高速化することができます。
ディスク先読み量を増やすことで、PostgreSQLがシーケンシャル読み込みをしていることをOSが察知して先にページをキャッシュに読み込んでくれるため、インデックス検索が高速になります。
以下のコマンドで設定の確認と変更ができます。

■設定の確認
  #blockdev --getra [データベース領域のデバイス名]

■設定の変更
  #blockdev --setra [N(512バイトセクタ単位)] [データベース領域のデバイス名]

ただし、設定した値が16MB(512バイトセクタ単位の場合は32768)以上になると、設定による効果は小さくなるので注意が必要です。

製品・サービス区分 Symfoware
製品・サービス情報
対象製品 Symfoware Server (Open Interface), Symfoware Server (Postgres)
プラットフォーム Windows, Solaris, Linux
アンサー種別 運用/保守
このページの先頭へ