Documentation PostgreSQL 8.2.23 > Internes > Catalogues système > pg_autovacuum | |
pg_auth_members | pg_cast |
Le catalogue pg_autovacuum stocke les paramètres de configuration optionnelle par relation pour le démon autovacuum. S'il existe une entrée pour une relation particulière, les paramètres donnés sont utilisés par autovacuum pour cette table. Si aucune entrée n'est présente, les paramètres par défaut du système sont utilisés. Pour plus d'informations sur le démon autovacuum, voir Section 22.1.4, « Le démon auto-vacuum ».
Il est probable que pg_autovacuum disparaisse dans une prochaine version. Les informations seront déplacées dans pg_class.reloptions.
Tableau 43.10. Colonnes de pg_autovacuum
Nom | Type | Références | Description |
---|---|---|---|
vacrelid | oid | pg_class.oid | La table concernée par l'entrée |
enabled | bool | À false, la table n'est pas prise en compte par autovacuum, sauf en cas de risque de ré-utilisation des identifiants de transaction (transaction ID wraparound). | |
vac_base_thresh | integer | Nombre minimum de lignes modifiées avant de lancer un vacuum | |
vac_scale_factor | float4 | Multiplicateur pour reltuples à ajouter à vac_base_thresh | |
anl_base_thresh | integer | Nombre minimum de lignes modifiées avant de lancer une analyse | |
anl_scale_factor | float4 | Multiplicateur pour reltuples à ajouter à anl_base_thresh | |
vac_cost_delay | integer | Paramètre vacuum_cost_delay personnalisé | |
vac_cost_limit | integer | Paramètre vacuum_cost_limit personnalisé | |
freeze_min_age | integer | Paramètre vacuum_freeze_min_age personnalisé | |
freeze_max_age | integer | Paramètre autovacuum_freeze_max_age personnalisé |
Le démon autovacuum lance une opération de VACUUM sur une table particulière quand le nombre de lignes mises à jour ou supprimées dépasse vac_base_thresh plus vac_scale_factor multiplié par le nombre de lignes actives alors estimées pour la relation. De façon similaire, il initie une opération ANALYZE quand le nombre de lignes insérées, mises à jour ou supprimées dépasse anl_base_thresh plus anl_scale_factor multiplié par le nombre de lignes actives alors estimées pour la relation.
De plus, le démon autovacuum réalise une opération de VACUUM pour prévenir la réinitialisation de l'ID de transaction si le champ pg_class.relfrozenxid de la table atteint un âge de plus de freeze_max_age transactions, que la table ait été modifiée ou non, même si le pg_autovacuum.enabled de cette table est configuré à false. Le système lance autovacuum pour exécuter de tels VACUUM même si autovacuum est désactivé. Voir Section 22.1.3, « Éviter les cycles des identifiants de transactions » pour plus d'informations sur la réinitialisation de l'ID de transaction.
Tout champ numérique peut contenir -1 (ou une autre valeur négative) pour indiquer que la valeur par défaut du système doit être utilisée pour cette valeur particulière. La variable vac_cost_delay hérite sa valeur par défaut du paramètre de configuration autovacuum_vacuum_cost_delay ou de vacuum_cost_delay si le premier est négatif. La même logique s'applique à vac_cost_limit. De plus, autovacuum ignore les tentatives d'initialisation par table d'un freeze_max_age plus grand que celui du système (il peut seulement être plus petit). freeze_min_age est limité à la moitié du paramètre autovacuum_freeze_max_age du système. Notez que, même si vous avez configuré freeze_max_age à une valeur très basse, voire même à zéro, ceci est habituellement déconseillé car elle forcera des opérations VACUUM très fréquentes.