pg_stat_user_indexes の使い方

使われていないインデックスを探す

書き方

SELECT indexrelname, idx_scan FROM pg_stat_user_indexes ORDER BY idx_scan;
DROP INDEX CONCURRENTLY インデックス;

idx_scan はそのインデックスを使った回数です。長い間 0 のインデックスは、書き込みを遅くし、ディスクを使うだけです。ただし主キーや UNIQUE のインデックスは、重複を防ぐ役目があるので消しません。統計を消した(pg_stat_reset)直後や、月に一度の処理だけが使うものにも気をつけます。

例

SELECT s.indexrelname FROM pg_stat_user_indexes s JOIN pg_index i ON i.indexrelid = s.indexrelid WHERE s.idx_scan = 0 AND NOT i.indisunique;

実際に打って練習する

PostgreSQL DBA コースの Lv49「使われないインデックス」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

すべてのレベルが、プラチナ以上のプランで遊べます。

PostgreSQL の管理コマンド一覧(DBA)へ戻る