Enterprise Postgresで、同じ格納データに対して、同じSELECTコマンドを実行しているが、実行環境や実行時刻によって、処理時間が大きく異なる原因について
Enterprise Postgresのよくあるご質問を検索できます。
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
なお、上記以外の製品バージョン/レベルについては、該当するマニュアル箇所を参照してください。
製品・サービス情報 |
|
||||
---|---|---|---|---|---|
アンサー種別 | 設計/開発 |