Enterprise Postgresにおけるインデックス検索の高速化について
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 | ||
---|---|---|---|
製品・サービス情報 |
|
||
アンサー種別 | 運用/保守 |