更新日:2024年12月27日
pg_dbms_stats とは
pg_dbms_stats は ANALYZE が収集する統計情報を管理するためのツールです。
PostgreSQL の SQL 実行は、ANALYZE コマンドによって収集される統計情報をもとに、コスト計算を行い、最も早く実行できると予想される実行プランが選択されます。
もし、統計情報の精度が不十分な状態で SQL を実行すると、効率の悪い実行プランが選択され、性能低下の要因となります。
統計情報を常に最新にしておくことで、PostgreSQL のプランナは常に最適なプランを選択し実行することが可能ですが、プランナの不具合など、なんらかの原因によっては、最適なプランが選択されないケースがあります。
そのような事態に陥った場合、PostgreSQL 本体の機能だけでは対処が難しいため、pg_dbms_stats や pg_hint_plan を使って、想定するプランが選択されない理由を調査したり、一時的に実行プランを固定することができます。
今回は、使用する統計情報の管理が可能な pg_dbms_stats について紹介します。