★PostgreSQLカンファレンス2024 12月6日開催/チケット販売中★
他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 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

20.10. 自動Vacuum作業 #

以下に示す設定は自動バキューム機能の動作を制御します。 詳細は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_multixactpg_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ファイル、または、サーバのコマンドラインのみで設定可能です。 この設定はテーブルストレージパラメータの変更により、それぞれのテーブルに対して上書きすることができます。