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 | ||||
---|---|---|---|---|---|
製品・サービス情報 |
|
||||
アンサー種別 | 運用/保守 |