## 17.9. Automatic Vacuuming

These settings control the default behavior for the autovacuum daemon. Please refer to Section 22.1.4, “The auto-vacuum daemon” for more information.

`autovacuum` (`boolean`)

  Controls whether the server should start the autovacuum subprocess. This is off by default. `stats_start_collector` and `stats_row_level` must also be on for this to start. This option can be set at server start or in the `postgresql.conf` file.

`autovacuum_naptime` (`integer`)

  Specifies the delay between activity rounds for the autovacuum subprocess. In each round the subprocess examines one database and issues `VACUUM` and `ANALYZE` commands as needed for tables in that database. The delay is measured in seconds, and the default is 60. This option can be set at server start or in the `postgresql.conf` file.

`autovacuum_vacuum_threshold` (`integer`)

  Specifies the minimum number of updated or deleted tuples needed to trigger a `VACUUM` in any one table. The default is 1000. This option can be set at server start or in the `postgresql.conf` file. This setting can be overridden for individual tables by entries in `pg_autovacuum`.

`autovacuum_analyze_threshold` (`integer`)

  Specifies the minimum number of inserted, updated or deleted tuples needed to trigger an `ANALYZE` in any one table. The default is 500. This option can be set at server start or in the `postgresql.conf` file. This setting can be overridden for individual tables by entries in `pg_autovacuum`.

`autovacuum_vacuum_scale_factor` (`floating point`)

  Specifies a fraction of the table size to add to `autovacuum_vacuum_threshold` when deciding whether to trigger a `VACUUM`. The default is 0.4. This option can be set at server start or in the `postgresql.conf` file. This setting can be overridden for individual tables by entries in `pg_autovacuum`.

`autovacuum_analyze_scale_factor` (`floating point`)

  Specifies a fraction of the table size to add to `autovacuum_analyze_threshold` when deciding whether to trigger an `ANALYZE`. The default is 0.2. This option can be set at server start or in the `postgresql.conf` file. This setting can be overridden for individual tables by entries in `pg_autovacuum`.

`autovacuum_vacuum_cost_delay` (`integer`)

  Specifies the cost delay value that will be used in automatic `VACUUM` operations. If -1 is specified (which is the default), the regular vacuum_cost_delay value will be used. This setting can be overridden for individual tables by entries in `pg_autovacuum`.

`autovacuum_vacuum_cost_limit` (`integer`)

  Specifies the cost limit value that will be used in automatic `VACUUM` operations. If -1 is specified (which is the default), the regular vacuum_cost_limit value will be used. This setting can be overridden for individual tables by entries in `pg_autovacuum`.