Junior — Middle
Comment identifier et analyser une requête longue dans PostgreSQL?
sobes.tech IA
Réponse de l'IA
Pour identifier les requêtes longues à s'exécuter dans PostgreSQL, vous pouvez utiliser la vue système pg_stat_activity, qui affiche les requêtes actives en cours et leur temps d'exécution. Par exemple, la requête :
SELECT pid, now() - query_start AS duration, query
FROM pg_stat_activity
WHERE state = 'active'
ORDER BY duration DESC
LIMIT 5;
permettra de voir les 5 requêtes actives les plus longues.
Pour une analyse plus approfondie, vous pouvez activer la journalisation des requêtes lentes dans postgresql.conf :
log_min_duration_statement = 1000 # journaliser les requêtes de plus de 1000 ms
Après cela, tous les requêtes dépassant ce temps seront enregistrées dans les logs.
Il est également utile d'utiliser des outils de profilage et EXPLAIN ANALYZE pour analyser le plan d'exécution de requêtes spécifiques et identifier les points de congestion.