メンテナンス操作のまとめ【PostgreSQL】
【頻出】メンテナンス操作のまとめ
メンテナンス操作のうち、特に頻出のものをまとめました。
1.手動VACUUM
VACUUM テーブル名;
VACUUM; --テーブル名を省略すると、すべてのテーブルを対象とする
--次のselect文でvacuumの実行時間を確認できる
select relname , last_vacuum , last_autovacuum from pg_stat_all_tables;
ここで詳しく説明しています
2.手動ANALYZE
ANALYZE テーブル名;
ANALYZE; --テーブル名を省略すると、すべてのテーブルを対象とする
--次のselect文でanalyzeの実行時間を確認できる
--autovacuum時にanalyzeが実行されるが、その時間がautoanalyzeとなる
select relname , last_analyze , last_autoanalyze from pg_stat_all_tables;
ここで詳しく説明しています → ANALYZEとは
3.CLUSTER
CLUSTER テーブル名 USING インデックス名;
ここで詳しく説明しています → CLUSTER(データをインデックス順に並び替える)
4.EXPLAIN , EXPLAIN ANALYZE
EXPLAIN SELECT文;
EXPLAIN ANALYZE SELECT文;
ここで詳しく説明しています → Explainの見方(analyze , cost , scan , sort)についてのまとめ
5.DBに接続しているセッションの確認
select * from pg_stat_activity where datname = 'データベース名';
ここで詳しく説明しています → 接続中のセッションを確認・切断する
6.接続中セッションの切断
--pidはこの上の『DBに接続しているセッションの確認』で確認する
SELECT pg_terminate_backend(pidを設定);
ここで詳しく説明しています → 接続中のセッションを確認・切断する