他のバージョンの文書9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

18.9. 自動Vacuum

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

autovacuumboolean

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

このパラメータが無効であってとしてもシステムは、トランザクションIDの周回を防止する必要があれば、自動バキュームプロセスを起動することに注意してください。 詳細は項23.1.3を参照してください。

log_autovacuum_min_durationinteger

少なくとも指定ミリ秒実行した場合、自動バキュームで実行される各活動がログに残るようになります。 これをゼロに設定すると、すべての自動バキュームの活動がログに残ります。 マイナス1(デフォルト)は自動バキューム活動のログを無効にします。 例えば、これを250msに設定すると、250ms以上かかって実行された自動的なバキュームや解析はすべてログに残ります。 このパラメータを有効にすることは、自動バキューム活動の追跡に役に立ちます。 このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインでのみで設定されます。

autovacuum_max_workersinteger

同時に実行することができる自動バキュームプロセス(自動バキュームランチャ以外)の最大数を指定します。 デフォルトは3です。 postgresql.confファイル内、または、サーバのコマンドラインでのみで設定されます。

autovacuum_naptimeinteger

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

autovacuum_vacuum_thresholdinteger

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

autovacuum_analyze_thresholdinteger

いかなる1つのテーブル内にANALYZEをトリガーする必要のある、挿入、更新、もしくは削除されたタプルの最小数を指定します。 デフォルトは50タプルです。 このパラメータは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の項目により個々のテーブルで減らすことができます。 詳細は項23.1.3を参照してください。

autovacuum_vacuum_cost_delayinteger

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

autovacuum_vacuum_cost_limitinteger

自動VACUUM操作に使用されるコスト限界値を指定します。 (デフォルトの)-1が指定されると、一定の vacuum_cost_limitの値が使用されます。 この値は、実行中の自動バキュームワーカが複数存在する場合ワーカすべてに比例分配されることに注意してください。 したがって各ワーカの制限を足し合わせてもこの変数による制限を超えることはありません。 このパラメータはpostgresql.confファイル内、または、サーバのコマンドラインのみで設定可能です。 この設定はpg_autovacuum内の項目により、それぞれのテーブルに対して上書きすることができます。