## F.28. online_analyze

The `online_analyze` module provides a set of features that immediately update statistics after `INSERT`, `UPDATE`, `DELETE`, or `SELECT INTO` operations for the affected tables.

### F.28.1. Module Loading

To use `online_analyze` module, load the shared library:

    LOAD 'online_analyze';

### F.28.2. Module Configuration

You can configure `online_analyze` using the following custom variables (default values are shown):

- online_analyze.enable = on

  Enables `online_analyze`.

- online_analyze.verbose = on

  Executes `ANALYZE VERBOSE`.

- online_analyze.scale_factor = 0.1

  Fraction of table size to start online analysis (similar to autovacuum_analyze_scale_factor).

- online_analyze.threshold = 50

  Minimum number of row updates before starting online analysis (similar to autovacuum_analyze_threshold).

- online_analyze.min_interval = 10000

  Minimum time interval between `ANALYZE` calls per table, in milliseconds.

- online_analyze.table_type = "all"

  Type(s) of tables for online analysis. Possible values are: `all`, `persistent`, `temporary`, `none`.

- online_analyze.exclude_tables = ""

  List of tables to exclude from online analysis.

- online_analyze.include_tables = ""

  List of tables to include in online analysis (`online_analyze.include_tables` overrides `online_analyze.exclude_tables`).

- online_analyze.local_tracking = off

  Enables per-backend tracking for temporary tables by `online_analyze`. When this variable is set to `off`, `online_analyze` uses the default system statistics for temporary tables.

- online_analyze.lower_limit = 0

  Minimum number of rows in a table required to trigger `online_analyze`.

- online_analyze.capacity_threshold = 100000

  Maximum number of temporary tables to store in local cache.

### F.28.3. Authors

Teodor Sigaev `<teodor@sigaev.ru>`