PostgreSQL 性能解析 EXPLAIN/pg_stat_statements 2026(ポストグレス性能解析)
PostgreSQL クエリチューニング。EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON)・pg_stat_statements (Top Slow)・auto_explain・pgBadger 12.x (Log Analyzer)・PG Hero・pgwatch2/pgwatch3・pganalyze (SaaS)・Crunchy Bridge・dexter (Auto Index)・hypopg・pg_stat_kcache・Index Bloat Check・VACUUM/ANALYZE TUNE・¥0-¥199/month、2026年pg_stat_io追加対応。
概要
PostgreSQL 2026版における性能解析は、EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) と pg_stat_statements を中心に進化。2025年に追加された pg_stat_io で I/O の詳細が確認でき、2026年には auto_explain が自動で JSON 形式の実行計画をログに出力。さらに pganalyze SaaS が AI を活用したレポートを提供し、pgBadger 12.x が高速なログ解析を実現。これらを組み合わせることで、クエリのボトルネックを可視化し、最適化へのロードマップを構築できる。
主な特徴・仕組み
- EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON)
- 実際の実行時間とバッファアクセスを JSON で出力。
- 例:
"total_time": 12.345ms、"shared_hit_blocks": 256
- pg_stat_statements (Top Slow)
- クエリごとの平均実行時間、呼び出し回数を記録。
- 2026年版で
io_timeカラムが追加。
- auto_explain
- 実行計画を自動でログに出力。
- 2026年に
FORMAT JSONがデフォルト化。
- pgBadger 12.x
- 10,000 行/秒のログを 30 秒以内に解析。
- 2025年にマルチスレッド解析が追加。
- pganalyze (SaaS)
- クラウド上でリアルタイムダッシュボード。
- 2026年に AI ベースの推奨クエリが付属。
- Crunchy Bridge
- クラウドでのマネージド PostgreSQL。
- 2025年に 99.999% SLA を実現。
- dexter (Auto Index)
- クエリパターンから最適インデックスを自動生成。
- 2026年に
hypopgとの連携が強化。
- Index Bloat Check
- 5% 以上の肥大化を検知し、VACUUM のタイミングを提案。
- VACUUM/ANALYZE TUNE
autovacuum_max_workers=4、autovacuum_naptime=30sで 2026年版に最適化。
- pg_stat_kcache
- OS レベルでのページキャッシュ統計を取得。
- 2026年に
pg_stat_kcacheで I/O ストレージのフルメトリクスを取得可能に。
スペック比較表
| ツール | 主機能 | 2025年アップデート | 2026年アップデート | コスト |
|---|---|---|---|---|
| EXPLAIN | 実行計画 | JSON 出力追加 | 2026版で FORMAT JSON デフォルト化 | 無料 |
| pg_stat_statements | クエリ統計 | io_time カラム追加 | 2026版で I/O メトリクス統合 | 無料 |
| pgBadger | ログ解析 | マルチスレッド | 12.x で 10,000 行/秒処理 | 無料 |
| pganalyze | SaaS ダッシュボード | AI 推奨開始 | 2026年に AI クエリ提案 | ¥0‑¥199/月 |
| dexter | Auto Index | hypopg 連携 | 2026年にインデックス肥大検知 | 無料 |
具体例・対応製品
- Intel Xeon W-3275
- 28 コア、3.7 GHz、256GB DDR5-4800。
- PostgreSQL 16.1 で
pg_stat_statementsが 99% のクエリを記録。
- NVIDIA RTX 4090
- 24GB GDDR6X、450W TDP。
- PostgreSQL 17.0 で pgBadger が GPU アクセラレーションを利用。
- Samsung 980 Pro 2TB NVMe SSD
- 3.5 Gbps、0.1 ms レイテンシ。
- 2025年に
pg_stat_ioで I/O スループットを 1,200 MB/s 測定。
自作PCでの選び方・注意点
- CPU
- PostgreSQL はシングルスレッドのパフォーマンスが重要。Ryzen 9 7950X (4.5 GHz) か Xeon W-3275 で 3.7 GHz が推奨。
- メモリ
shared_buffersは物理メモリの 25% が一般的。128GB DDR5-6000 で 32GB を割当。
- ストレージ
- NVMe SSD のレイテンシは 0.1 ms 以下。2TB 以上の容量で
pg_stat_ioのデータ保持。
- NVMe SSD のレイテンシは 0.1 ms 以下。2TB 以上の容量で
- GPU
- pgBadger の GPU アクセラレーションを利用する場合、RTX 4090 以上。
- ネットワーク
- クラスタリングや pganalyze 連携には 10GbE NIC が有利。
- 電源
- 600W 以上、80+ Platinum で安定供給。
- 冷却
- 40°C 以下に保つため、液体冷却を検討。
- バックアップ
pg_dumpで 24 時間に 1 回のフルバックアップ。
- 監視
- pgwatch2/pgwatch3 で
pg_stat_kcacheを定期取得。
- pgwatch2/pgwatch3 で
- セキュリティ
- TLS 1.3、pg_hba.conf で IP 制限。
関連用語との違い
- EXPLAIN vs. EXPLAIN ANALYZE
- EXPLAIN は計画のみ、EXPLAIN ANALYZE は実行時間を測定。
- pg_stat_statements vs. pg_stat_kcache
- 前者はクエリ統計、後者は OS レベルのページキャッシュ統計。
- auto_explain vs. pganalyze
- auto_explain はサーバ内でログに出力、pganalyze はクラウドで可視化。
- pgBadger vs. Crunchy Bridge
- pgBadger はオンプレミスのログ解析、Crunchy Bridge はマネージドサービス。
よくある質問 (FAQ)
Q1: EXPLAIN の JSON 出力はどのように活用しますか?
A1: JSON はプログラムでパースし、total_time と shared_hit_blocks を比較して I/O ボトルネックを特定。2026年版では FORMAT JSON がデフォルトで簡単に取得できる。
Q2: pg_stat_statements で I/O 時間が表示されない場合は?
A2: PostgreSQL 16.1 以降で track_io_timing=on を postgresql.conf に設定。2026年版では io_time カラムが自動追加される。
Q3: pganalyze の AI 推奨機能は無料で使えますか?
A3: 基本プランは ¥0 で利用可能だが、AI 推奨は 2026年のプロプラン(¥0‑¥199/月)で提供。
まとめ
PostgreSQL 2026版の性能解析は、EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON) と pg_stat_statements を中心に、2025年に登場した pg_stat_io、2026年の auto_explain の JSON デフォルト化、pganalyze の AI 推奨機能、pgBadger 12.x の高速マルチスレッド解析などで総合的に強化。自作PCでは CPU、メモリ、NVMe SSD、GPU を適切に組み合わせ、電源・冷却・ネットワークも計画的に選定することで、安定かつ高速な PostgreSQL 環境を構築できる。これらのツールとハードウェアを組み合わせることで、クエリのボトルネックを即座に可視化し、最適化への道筋を確実に描くことが可能だ。