Autoanalyze¶
Déclenchement de l’autoanalyze¶
L’analyse automatique d’une table est déclenchée lorsqu’une activité significative a été accumulée
sur cette table. Ce niveau d’activité est contrôlé par les paramètres de configuration
autovacuum_analyze_threshold
et autovacuum_analyze_scale_factor
.
L’analyse se déclenche lorsque autovacuum_analyze_scale_factor
pour cent des lignes de la table
et autovacuum_analyze_threshold
lignes ont été modifiées depuis le dernier déclenchement. La
formule de calcul est la suivante :
Cas d’arrêt de l’autoanalyze¶
Il est possible que l’autoanalyze soit interrompu lorsqu’un conflit de verrouillage sur la table se produit. Si cela arrive, l’autovacuum logue le message suivant :
et annule son analyse statistique. Cela n’est pas critique, comme indiqué par le niveau de log
LOG
et non WARNING
ou ERROR
. L’autovacuum tentera de nouveau de procéder à l’analyse de la
table lors du prochain cycle.
Les conflits de verrouillage sur la table analysée peuvent provenir de l’une des opérations suivantes exécutées en parallèle sur la même table ou qui ont été exécutées précédemment dans une transaction toujours ouverte :
VACUUM
;ANALYZE
;CREATE INDEX
;ALTER TABLE
;DROP TABLE
;TRUNCATE
;CLUSTER
;LOCK TABLE
.
Pour identifier la cause réelle de cet arrêt, il est recommandé d’examiner les vues pg_locks
et
pg_stat_activity
pendant que le problème se produit.