PostgreSQL ANALYSE
La commande `ANALYZE` de PostgreSQL collecte des statistiques sur le contenu des tableaux de la base de données. Ces statistiques sont utilisées par le planificateur de requêtes pour générer des plans d'exécution efficaces pour les requêtes.
Utilisation
La commande `ANALYZE` est utilisée pour mettre à jour les statistiques de la base de données afin d'améliorer les performances d'exécution des requêtes. Il peut être exécuté sur des tableaux ou des colonnes spécifiques, ou sur l'ensemble de la base de données.
ANALYZE [VERBOSE] [table_name [ (column_name [, ...] ) ] ];
Dans cette syntaxe, `ANALYZE nom_de_table` met à jour les statistiques pour le tableau spécifié, tandis que `ANALYZE` sans arguments traite tous les tableaux de la base de données courante. L'option `VERBOSE` fournit une sortie détaillée.
Note : La commande `ANALYZE` est automatiquement exécutée par le démon autovacuum, qui est activé par défaut dans PostgreSQL. Cela réduit la nécessité d'exécuter manuellement `ANALYZE` dans des circonstances normales.
Exemples
1. Analyse de l'ensemble de la base de données
ANALYZE;
Cette commande met à jour les statistiques de tous les tableaux de la base de données actuelle, ce qui permet au planificateur de requêtes de disposer d'informations actualisées pour l'optimisation.
2. Analyse d'un tableau spécifique
ANALYZE employees;
Ici, les statistiques du tableau `employés` sont mises à jour, ce qui peut conduire à une exécution plus efficace des requêtes impliquant ce tableau.
3. Analyse de colonnes spécifiques
ANALYZE customers (first_name, last_name);
Cet exemple met à jour les statistiques uniquement pour les colonnes `first_name` et `last_name` du tableau `customers`, ce qui est utile si les requêtes filtrent ou trient souvent ces colonnes.
Conseils et bonnes pratiques
- Entretien régulier. Exécutez `ANALYZE` régulièrement, en particulier après des changements significatifs de données, pour maintenir une performance optimale de la requête. Cependant, si l'autovacuum est activé, l'exécution manuelle peut être redondante.
- A utiliser avec `VACUUM`. Combinez `ANALYZE` avec `VACUUM` pour récupérer de l'espace de stockage et mettre à jour les statistiques en une seule opération de maintenance.
- Automatisez avec Autovacuum. Permet au démon autovacuum d'effectuer automatiquement les tâches `ANALYZE` sur les tableaux, réduisant ainsi la nécessité d'une intervention manuelle.
- Cibler les zones à fort impact. Concentrez-vous sur les tableaux et les colonnes qui sont fréquemment interrogés ou qui ont subi des modifications substantielles afin d'améliorer les performances de manière ciblée.
- Statistiques du moniteur. Utilisez la vue `pg_stats` pour vérifier les statistiques actuelles d'un tableau ou d'une colonne, afin de mieux comprendre les données utilisées par le planificateur de requêtes.
Note de performance : L'exécution de `ANALYZE` peut augmenter la charge d'E/S, ce qui peut avoir un impact temporaire sur les performances pendant l'exécution, en particulier sur les tableaux de grande taille. Planifiez l'exécution pendant les heures creuses si nécessaire.