Mon application de base de données exécute de nombreuses requêtes différentes. J'ai réglé log_min_duration_statement
à 1000. Mais les requêtes enregistrées là-bas ne sont pas toujours lentes, la plupart du temps elles ne prennent que quelques ms.
Est-il possible d'obtenir une statistique de toutes les requêtes et combien de fois elles ont pris plus de 1000 ms?
postgresql
performance
user2047809
la source
la source
Réponses:
Installez l'extension pg_stat_statements avec la commande SQL
CREATE EXTENSION pg_stat_statements
Vous voudrez peut-être vous assurer de le créer en utilisant un utilisateur approprié (tel que l'utilisateur utilisé par votre application ou un compte dba). Sachez que l'utilisateur qui crée l'extension en sera également propriétaire.
Cela nécessitera un redémarrage du serveur pour qu'il soit utilisable (car vous devez modifier légèrement la configuration dans postgresql.conf qui affecte la consommation de mémoire), mais cela vous donnera des statistiques sur toutes les requêtes.
Veuillez consulter la page de documentation pour plus d'informations sur ce que pg_stat_statements fournit. Voir ici pour une référence rapide sur la configuration du fichier de configuration postgresql.conf pour pg_stat_statements.
Une fois que vous l'avez installé et exécuté, vous pouvez afficher les statistiques en interrogeant la vue pg_stat_statements.
la source
Comment @JoishiBodio a déclaré que vous pouvez utiliser l'
pg_stat_statements
extension pour voir les statistiques des requêtes lentes. Pour ceux qui ont du mal avec l'installation (comme moi):Vérifiez si
pg_stat_statements
est dans la liste des extensions disponibles:Essayez d'installer le
postgresql-contrib
package via votre gestionnaire de packages système, sur Debian / Ubuntu:Répétez ensuite l'étape 1.
pg_stat_statements
àshared_preload_libraries
dans la configuration PostgreSQL:via
postgres.conf
:via des arguments de ligne de commande (sans guillemets!):
Créez ensuite l'extension dans une base de données:
la source