118 votes

Existe-t-il un équivalent PostgreSQL du profileur SQL Server?

J'ai besoin de voir les requêtes soumises à un serveur PostgreSQL. Normalement, j'utiliserais le profileur SQL Server pour effectuer cette action dans un environnement SQL Server, mais je n'ai pas encore trouvé comment le faire dans PostgreSQL. Il semble y avoir assez d'outils payants, j'espère qu'il existe une variante open source.

76voto

Joshua Smith Points 4413

Vous pouvez utiliser le log_statement paramètre de configuration pour obtenir la liste de toutes les requêtes vers un serveur

http://www.postgresql.org/docs/current/static/runtime-config-logging.html#GUC-LOG-STATEMENT

Juste régler cela, et le fichier de journalisation chemin et vous aurez la liste. Vous pouvez également le configurer pour se connecter uniquement des requêtes de longue durée.

Vous pouvez alors prendre ces requêtes et exécuter EXPLIQUER sur eux pour savoir ce qu'il se passe avec eux.

http://www.designmagick.com/article/23/Using-Explain/Using-Explain/page/2

42voto

vladr Points 34562

En ajoutant à la réponse de Joshua, pour voir quelles requêtes sont en cours d'exécution, émettez simplement l'instruction suivante à tout moment (par exemple dans la fenêtre de requête de PGAdminIII):

 SELECT datname,procpid,current_query FROM pg_stat_activity;
 

Exemple de sortie:

      datname    | procpid | current_query
 ---------------+---------+---------------
  mydatabaseabc |    2587 | <IDLE>
  anotherdb     |   15726 | SELECT * FROM users WHERE id=123 ;
  mydatabaseabc |   15851 | <IDLE>
 (3 rows)
 

35voto

J'ai découvert pgBadger (http://dalibo.github.io/pgbadger/) et c'est un outil fantastique qui m'a sauvé la vie plusieurs fois. Voici un exampke de rapport: http://dalibo.github.io/pgbadger/samplev4.html. Si vous l'ouvrez et aller à " top menu vous pouvez voir le plus lent des requêtes et le temps des requêtes. Ensuite, vous pouvez demander des détails et voir nice graphiques qui vous montrent les requêtes par heure et si vous utilisez le bouton détails, vous pouvez voir le texte sql dans une jolie forme. Donc, je peux voir que cet outil est gratuit et parfait.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X