メンテナンス操作のまとめ【PostgreSQL】

2021年8月22日未分類

【頻出】メンテナンス操作のまとめ

メンテナンス操作のうち、特に頻出のものをまとめました。

 

1.手動VACUUM

VACUUM テーブル名;
VACUUM;  --テーブル名を省略すると、すべてのテーブルを対象とする

--次のselect文でvacuumの実行時間を確認できる
select relname , last_vacuum , last_autovacuum from pg_stat_all_tables;

ここで詳しく説明しています

VACUUMとは、VACUUM FULLの実行

AUTOVACUUMとは

 

 

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を設定); 

ここで詳しく説明しています → 接続中のセッションを確認・切断する