Metadata-Version: 2.1
Name: odoo-addon-database_autovacuum_tuning
Version: 18.0.1.0.1.3
Requires-Python: >=3.10
Requires-Dist: odoo==18.0.*
Summary: Scheduled checks for Odoo autovacuum thresholds and scale factors
Home-page: https://github.com/OCA/server-tools
License: LGPL-3
Author: Camptocamp, Odoo Community Association (OCA)
Author-email: support@odoo-community.org
Classifier: Programming Language :: Python
Classifier: Framework :: Odoo
Classifier: Framework :: Odoo :: 18.0
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
Classifier: Development Status :: 3 - Alpha
Description-Content-Type: text/x-rst

.. image:: https://odoo-community.org/readme-banner-image
   :target: https://odoo-community.org/get-involved?utm_source=readme
   :alt: Odoo Community Association

==========================
Database Autovacuum Tuning
==========================

.. 
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! This file is generated by oca-gen-addon-readme !!
   !! changes will be overwritten.                   !!
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! source digest: sha256:ed2cea913a7d93d83e99dc2d84a053972a91963c100bf3ea8ceca5e69c1c7315
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
    :target: https://odoo-community.org/page/development-status
    :alt: Alpha
.. |badge2| image:: https://img.shields.io/badge/license-LGPL--3-blue.png
    :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
    :alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
    :target: https://github.com/OCA/server-tools/tree/18.0/database_autovacuum_tuning
    :alt: OCA/server-tools
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
    :target: https://translation.odoo-community.org/projects/server-tools-18-0/server-tools-18-0-database_autovacuum_tuning
    :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
    :target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=18.0
    :alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

Database Autovacuum Tuning helps administrators keep PostgreSQL healthy
by exposing recommended autovacuum settings in Odoo. It provides
guidance and documentation for sizing thresholds and scale factors so
large, busy databases avoid table bloat and excessive vacuum lag. Use it
to standardize autovacuum configuration across environments and speed up
maintenance operations without manual tuning.

This module is mostly useful for PostgreSQL <= 17. PostgreSQL 18.0
introduces the ``autovacuum_vacuum_max_threshold`` parameter, which
already provides the capability this module targets.

The ``pgstattuple`` extension must be installed on the database.

.. IMPORTANT::
   This is an alpha version, the data model and design can change at any time without warning.
   Only for development or testing purpose, do not use in production.
   `More details on development status <https://odoo-community.org/page/development-status>`_

**Table of contents**

.. contents::
   :local:

Usage
=====

1. Install the module on the database you want to tune.

2. Go to Settings > Technical > Database Structure > Database Autovacuum
   Tuning and review the recommended thresholds and scale factors.

3. If needed, override the defaults using the following system
   parameters:

   - ``database_autovacuum_tuning.autovacuum_vacuum_max_threshold``
   - ``database_autovacuum_tuning.autovacuum_vacuum_analyze_max_threshold``

4. The configuration parameters are applied to tables by the daily cron
   job. When the number of dead tuples in a table exceeds the vacuum
   threshold, it applies the following configuration:

   .. code:: sql

      ALTER TABLE {schemaname}.{tablename} SET (
           autovacuum_vacuum_scale_factor = 0,
           autovacuum_vacuum_threshold = %s,
           autovacuum_analyze_scale_factor = 0,
           autovacuum_analyze_threshold = %s
      )

5. Monitor vacuum activity and table bloat, then adjust the settings if
   your workload changes.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-tools/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/server-tools/issues/new?body=module:%20database_autovacuum_tuning%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Camptocamp

Contributors
------------

- Telmo Santos <telmo.santos@camptocamp.com>
- Alexandre Fayolle <alexandre.fayolle@camptocamp.com>

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
   :alt: Odoo Community Association
   :target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/server-tools <https://github.com/OCA/server-tools/tree/18.0/database_autovacuum_tuning>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
