17.9. 自動Vacuum

これらの設定は自動バキューム機能の振る舞いを制御します。詳細は項22.1.4を参照してください。

autovacuumboolean

サーバが自動バキュームデーモンを実行すべきかどうかを管理します。 デフォルトでは無効です。 autovacuumを作動させるためにはstats_start_collectorおよびstats_row_levelもオンでなければなりません。 このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインでのみで設定されます。

autovacuum_naptimeinteger

自動バキュームデーモンに対する活動周期間の遅延を指定します。 それぞれの周期で、デーモンは1つのデータベースを試験し、そしてそのデータベース内のテーブルで必要性が認められると、VACUUMおよびANALYZEコマンドを発行します。 遅延は秒単位で計測され、デフォルトは1分(1m)です。 このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインでのみで設定されます。

このパラメータが無効な時であっても、システムはトランザクションIDでの取り囲みを防ぐため、定期的にオートバキュームプロセスを開始します。より詳細な情報は、項22.1.3を参照ください。

autovacuum_vacuum_thresholdinteger

いかなる1つのテーブル内にVACUUMをトリガーする必要のある、更新もしくは削除されたタプルの最小数を指定します。 デフォルトは500タプルです。 このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインでのみで設定されます。 この設定はpg_autovacuum内の項目により、それぞれのテーブルに対して上書きすることができます。

autovacuum_analyze_thresholdinteger

いかなる1つのテーブル内にANALYZEをトリガーする必要のある、挿入、更新、もしくは削除されたタプルの最小数を指定します。 デフォルトは250タプルです。 このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインでのみで設定されます。 この設定はpg_autovacuum内の項目により、それぞれのテーブルに対して上書きすることができます。

autovacuum_vacuum_scale_factorfloating point

VACUUMをトリガーするか否かを決定する場合、autovacuum_vacuum_thresholdに追加するテーブル容量の断片を指定します。 デフォルトは0.2(テーブルサイズの20%)です。 このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインでのみで設定されます。 この設定はpg_autovacuum内の項目により、それぞれのテーブルに対して上書きすることができます。

autovacuum_analyze_scale_factorfloating point

ANALYZEをトリガーするか否かを決定する場合、autovacuum_vacuum_thresholdに追加するテーブル容量の小部分を指定します。 デフォルトは0.1(テーブルサイズの10%)です。 このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインでのみで設定されます。 この設定はpg_autovacuum内の項目により、それぞれのテーブルに対して上書きすることができます。

autovacuum_freeze_max_age (integer)

トランザクションID周回を防ぐためにVACUUM操作が強制される前までにテーブルのpg_class.relfrozenxid フィールドが到達できる最大(トランザクションの)年代を指定します。 自動バキュームが無効であった時でも、システムは周回を防ぐために自動バキューム子プロセスを起動することに注意してください。 デフォルトは2億トランザクションです。 このパラメータはサーバ起動時にのみ設定可能です。 しかし、この設定はpg_autovacuumの項目により個々のテーブルで減らすことができます。 詳細は項22.1.3を参照してください。

autovacuum_vacuum_cost_delayinteger

自動VACUUM操作に使用されるコスト遅延値を指定します。 (デフォルトの)-1が指定されると、一定の vacuum_cost_delayの値が使用されます。 このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインのみで設定可能です。 この設定はpg_autovacuum内の項目により、それぞれのテーブルに対して上書きすることができます。

autovacuum_vacuum_cost_limitinteger

自動VACUUM操作に使用されるコスト限界値を指定します。 (デフォルトの)-1が指定されると、一定の vacuum_cost_limitの値が使用されます。 このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインのみで設定可能です。 この設定はpg_autovacuum内の項目により、それぞれのテーブルに対して上書きすることができます。