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

Enterprise Postgresの技術情報はこちら

インデックス検索に時間がかかります。検索を高速化するためにはどうすればよいでしょうか?
インデックス検索の高速化の方法としてwork_memパラメータによるチューニングがあります。
work_memパラメータは、以下の2つの操作のメモリ容量を設定するパラメータです。
  • メモリ内部でのデータの並べ替え
  • ハッシュテーブル操作

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

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

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

 FUJITSU Software Enterprise Postgres 12
  PostgreSQL 12.1 Documentation
   Part III. Server Administration
    Chapter 19. Server Configuration
     19.4. Resource Consumption
      19.4.1. Memory

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

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

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

ただし、設定した値が16MB(512バイトセクタ単位の場合は32768)以上になると、設定による効果は小さくなるので注意が必要です。
製品・サービス区分 Enterprise Postgres
製品・サービス情報
プラットフォームWindows,Solaris,Linux
アンサー種別 運用/保守
このページの先頭へ