/ / Django + postgresql: enregistre le temps d'exécution d'une requête - django, postgresql

Django + postgresql: enregistre le temps d'exécution d'une requête - django, postgresql

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 № 1

Vous 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.