以下に示す設定は自動バキューム機能の動作を制御します。 詳細は25.1.6を参照してください。 これらの設定の多くは、テーブル単位で変更できることに注意してください。 格納パラメータを参照してください。
autovacuum
(boolean
)
#
サーバがautovacuumランチャデーモンを実行すべきかどうかを管理します。
デフォルトでは有効です。
しかしautovacuumを作動させるためにはtrack_countsも有効でなければなりません。
このパラメータはpostgresql.conf
ファイル、または、サーバのコマンドラインでのみで設定されます。
ただし、テーブルストレージパラメータを変更することにより、autovacuumは個々のテーブルに対して無効にできます。
このパラメータが無効であったとしてもシステムは、トランザクションIDの周回を防止する必要があれば、autovacuumプロセスを起動することに注意してください。 詳細は25.1.5を参照してください。
autovacuum_max_workers
(integer
)
#同時に実行することができるautovacuumプロセス(autovacuumランチャ以外)の最大数を指定します。 デフォルトは3です。 このパラメータはサーバ起動時のみ設定可能です。
autovacuum_naptime
(integer
)
#
あるデータベースについて実行されるautovacuumデーモンの最小遅延を指定します。
それぞれの周期で、デーモンはそのデータベースを試験し、そしてそのデータベース内のテーブルで必要性が認められると、VACUUM
およびANALYZE
コマンドを発行します。
この値が単位なしで指定された場合は、秒単位であるとみなします。
デフォルトは1分(1min
)です。
このパラメータはpostgresql.conf
ファイル、または、サーバのコマンドラインでのみで設定されます。
autovacuum_vacuum_threshold
(integer
)
#
どのテーブルに対してもVACUUM
を起動するために必要な、更新もしくは削除されたタプルの最小数を指定します。
デフォルトは50タプルです。
このパラメータはpostgresql.conf
ファイル、または、サーバのコマンドラインでのみで設定されます。
ただし、この設定はテーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きすることができます。
autovacuum_vacuum_insert_threshold
(integer
)
#
あるテーブルでVACUUM
を起動するきっかけとなるのに必要な挿入タプル数を設定します。
デフォルトは1000タプルです。
-1が指定されると、自動VACUUMが挿入タプル数に基づいてVACUUM
操作を引き起こすことはなくなります。
このパラメータはpostgresql.conf
ファイル、または、サーバのコマンドラインでのみで設定されます。
ただし、この設定はテーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きすることができます。
autovacuum_analyze_threshold
(integer
)
#
どのテーブルに対してもANALYZE
を起動するのに必要な、挿入、更新、もしくは削除されたタプルの最小数を指定します。
デフォルトは50タプルです。
このパラメータはpostgresql.conf
ファイル、または、サーバのコマンドラインでのみで設定されます。
この設定はテーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きすることができます。
autovacuum_vacuum_scale_factor
(floating point
)
#
VACUUM
を起動するか否かを決定するときに、autovacuum_vacuum_threshold
に足し算するテーブル容量の割合を指定します。
デフォルトは0.2(テーブルサイズの20%)です。
このパラメータはpostgresql.conf
ファイル、または、サーバのコマンドラインでのみで設定されますが、テーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きすることができます。
autovacuum_vacuum_insert_scale_factor
(floating point
)
#
VACUUM
を起動するかどうか決める際のautovacuum_vacuum_insert_threshold
に追加するテーブルサイズの割合を指定します。
デフォルトは0.2(テーブルサイズの20%)です。
このパラメータはpostgresql.conf
ファイル、または、サーバのコマンドラインでのみで設定されますが、テーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きすることができます。
autovacuum_analyze_scale_factor
(floating point
)
#
ANALYZE
を起動するか否かを決定するときに、autovacuum_analyze_threshold
に足し算するテーブル容量の割合を指定します。
デフォルトは0.1(テーブルサイズの10%)です。
このパラメータはpostgresql.conf
ファイル、または、サーバのコマンドラインでのみで設定されます。
この設定はテーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きされます。
autovacuum_freeze_max_age
(integer
)
#
トランザクションID周回を防ぐためにVACUUM
操作が強制される前までにテーブルのpg_class
.relfrozenxid
フィールドが到達できる最大(トランザクションにおける)年代を指定します。
自動バキュームが無効であった時でも、システムは周回を防ぐために自動バキューム子プロセスを起動することに注意してください。
vacuumは同時にpg_xact
サブディレクトリから古いファイルの削除を許可します。
これが、比較的低い2億トランザクションがデフォルトである理由です。
このパラメータはサーバ起動時にのみ設定可能です。
しかし、この設定はテーブルストレージパラメータの変更により、それぞれのテーブルで減らすことができます。
詳細は25.1.5を参照してください。
autovacuum_multixact_freeze_max_age
(integer
)
#
トランザクションID周回を防ぐためにVACUUM
操作が強制される前までにテーブルのpg_class
.relminmxid
フィールドが到達できる最大(マルチトランザクションにおける)年代を指定します。
自動バキュームが無効であった時でも、システムは周回を防ぐために自動バキューム子プロセスを起動することに注意してください。
またマルチトランザクションIDのvacuumはpg_multixact
とpg_multixact/offsets
サブディレクトリから古いファイルの削除します。
これがデフォルトが4億トランザクションをやや下回る理由です。
このパラメータはサーバ起動時にのみ設定可能です。
しかし、この設定はテーブルストレージパラメータの変更により、それぞれのテーブルで減らすことができます。
詳細は25.1.5.1を参照してください。
autovacuum_vacuum_cost_delay
(floating point
)
#
自動VACUUM
操作に使用されるコスト遅延値を指定します。
-1に指定されると、一定の vacuum_cost_delayの値が使用されます。
この値が単位なしで指定された場合は、ミリ秒単位であるとみなします。
デフォルト値は2ミリ秒です。
このパラメータはpostgresql.conf
ファイル内、またはサーバのコマンドラインのみで設定可能です。
この設定はテーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きすることができます。
autovacuum_vacuum_cost_limit
(integer
)
#
自動VACUUM
操作に使用されるコスト限界値を指定します。
(デフォルトの)-1が指定されると、一定の vacuum_cost_limitの値が使用されます。
この値は、実行中の自動バキュームワーカーが複数存在する場合ワーカーすべてに比例分配されることに注意してください。
したがって各ワーカーの制限を足し合わせてもこの変数による制限を超えることはありません。
このパラメータはpostgresql.conf
ファイル、または、サーバのコマンドラインのみで設定可能です。
この設定はテーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きすることができます。