Enterprise Postgresで、同じ格納データに対して、同じSELECTコマンドを実行しているが、実行環境や実行時刻によって、処理時間が大きく異なる原因について

Enterprise Postgres の技術情報はこちら

Enterprise Postgresで、同じ格納データに対して、同じSELECTコマンドを実行しているが、実行環境(本番/検証環境)や実行時刻によって、処理時間が大きく異なります。原因と対処方法を教えてください。
[原因]
実行計画の違いが原因である場合があります。
実行計画は、SELECTコマンドの内容、統計情報をもとに、Enterprise Postgresが作成します。
統計情報は、ANALYZEやVACUUM ANALYZEコマンドの実行、自動バキュームにて収集されます。これらコマンドや機能の実行有無によって、SELECTコマンド実行時の統計情報が異なっていたために、異なる実行計画が作成され、処理時間に差が発生している場合があります。

[対処方法]
実行計画が同じであるか確認してください。実行計画は、EXPLAINコマンドで確認することができます。
実行計画に違いがある場合は、どの実行計画を採用するかを検討したうえで、以下のいずれかの対処で実行計画を同じにしてください。
  • ANALYZEを実行する。
  • pg_dbms_statsを用いて統計情報を固定化することで、実行計画も固定化する。
  • pg_hint_planを用いて実行計画を指定する。

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

FUJITSU Software Enterprise Postgres 13
 PostgreSQL 13.1 Documentation
  Part II. The SQL Language
   Chapter 14. Performance Tips
なお、上記以外の製品バージョン/レベルについては、該当するマニュアル箇所を参照してください。
製品・サービス情報
対象製品Enterprise Postgres
プラットフォームWindows,Solaris,Linux
アンサー種別 設計/開発
このページの先頭へ