アーカイブ化していないのにDB容量が減少する現象について
アーカイブ化していないのにも関わらず、DBの容量が減少する場合がありますが、それはPostgreSQLに実装されている"auto vacuum"という機能が影響しています。
"auto vacuum"とは、「VACUUM」といわれるデータベースの掃除作業と「ANALYZE」といわれる統計情報の取得作業をを実行することにより、PostgreSQLのパフォーマンスの最適化を行う機能です。
"auto vacuum"の設定内容は以下の場所から確認できます:
1. "[ADAudit Plus インストールディレクトリ]\pgsql\data"に移動します。
2. メモ帳以外のテキストエディタを起動し、"postgresql.conf"を開きます。
3. "AUTOVACUUM PARAMETERS"という項目がautovacuumの設定情報です。
#autovacuum = on # Enable autovacuum subprocess? 'on'
# requires track_counts to also be on.
#log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and
# their durations, > 0 logs only
# actions running at least this number
# of milliseconds.
#autovacuum_max_workers = 3 # max number of autovacuum subprocesses
# (change requires restart)
#autovacuum_naptime = 1min # time between autovacuum runs
#autovacuum_vacuum_threshold = 50 # min number of row updates before
# vacuum
#autovacuum_analyze_threshold = 50 # min number of row updates before
# analyze
#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum
#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
# (change requires restart)
#autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for
# autovacuum, in milliseconds;
# -1 means use vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for
# autovacuum, -1 means use
# vacuum_cost_limit
項目名 | 設定内容 |
---|---|
autovacuum | 自動VACUUMのプロセスを実行するかどうかの設定 |
autovacuum_naptime | autovacuumを起動する間隔 |
autovacuum_vacuum_threshold | VACUUMを起動するトリガとなる更新行数 |
autovacuum_analyze_threshold | ANALYZEを起動するトリガとなる更新行数 |
autovacuum_vacuum_scale_factor | VACUUMを起動するトリガとなる更新行数の割合 |
autovacuum_analyze_scale_factor | ANALYZEを起動するトリガとなる更新行数の割合 |