|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() Inscription : avril 2009 Messages : 674 ![]() |
bonjour,
je suis à la recherche d'un outil qui analyse les logs de postgresql sous windows. Lequel me conseillez-vous ? J'en cherche un qui me permette de détecter quelle requête est le plus fait ? par exemple, si il voit dans les log ceci : update matable set champ1=45 where id=12 update matable set champ1=46 where id=13 et me sortirait dans un table une analyse comme ça : Nb execution |moy. temps exec | requete ________________________________________________ 2 | 12ms | update matable set champ1=INTwhere id=INT Si possible, il faut qu'il fonctionne sous windows, avec pg 8.2. merci de vos conseils. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 2 197 ![]() |
C'est le gros manque de postgresql je trouve.
En fait la technique : activer les logs de l'instance (reboot necessaire...) Puis utiliser un programme de parse qui va analyser les logs ... ![]() Pour la contrainte windows je ne sais pas, mais en cherchant sur google avec "postgresql query analyzer" vous trouverez pas mal de programme gratuit qui font des reports de ce style (pgFouine, practical query analyzer, ...) Pour les versions payantes aucune idée. |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 501 ![]() |
Le mieux que je connaisse est pgfouine (gratuit) qui te trie les requêtes par temps d'exécution, nombre d'exécutions, ...
Sinon depuis la version 8.4 tu as la contrib auto_explain qui permet de voir les plans d'exécution des requêtes exécutées (surtout utile pour analyser les performances et pourquoi telle requête a été longue) Il n'existe pas à ma connaissance d'outil payant capable de faire mieux, ou sinon après il faut partir sur la version payante de Postgresql (Enterprise DB, qui propose un outil "Postgresql Enterprise Manager" qui a l'air pas mal) Dans tous les cas avec n'importe quel outil pour tracer les requêtes, le problème est qu'il faut souvent ne tracer que les requêtes longues (jouer sur le paramètre log_min_duration_statement) car si tu traces tout (log_min_duration_statement=0) ça va écrire toutes les requêtes dans le fichier de log et ça peut vite plomber les performances. Du coup pour ton besoin initial qui est de voir les requêtes les plus fréquemment exécutées, si tu veux aussi voir les requêtes qui ne prennent que quelques millisecondes, tu vas devoir tout tracer et donc attention aux perfs et à la taille de ton fichier de log
__________________
La théorie, c'est quand on sait tout mais que rien ne fonctionne. La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi ! Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/ |
|
|
10
|
Copyright © 2000-2013 - www.developpez.com