Question de débutant, et c’est probablement un doublon, désolé! Mais je ne peux pas trouver la réponse en cherchant sur Google ou en cherchant ici.
Mon application Django / postgres est lente. Je sais comment enregistrer le requêtes en cours d'exécution sur postgres, donc je fais ça.
Maintenant, comment puis-je identifier lesquels sont lents ... à moins de les taper tous en moi et d'utiliser un chronomètre?
En bref: existe-t-il un moyen de consigner le temps nécessaire à l'exécution de chaque requête à l'aide de Django ORM & d'une base de données postgres?
Réponses:
1 pour la réponse № 1Vous avez besoin django-debug-toolbar. Merci moi plus tard.
Ou si vous voulez le faire manuellement, alors:
import time
start = time.time()
# execute your query here
stop = time.time() - start
print stop # or log this time
1 pour la réponse № 2
enregistrer toutes les requêtes lentes
set log_min_duration_statement = 200ms dans le fichier postgresql.conf
http://www.postgresql.org/docs/9.2/static/runtime-config-logging.html
0 pour la réponse № 3
J'ai utilisé pgFouine pour analyser mes logs postgres - voir http://pgfouine.projects.pgfoundry.org/tutorial.html pour savoir comment configurer la journalisation et comment les analyser avec pgFouine.