Database query history
When
DEBUG
is True
, Django maintains a history of all SQL commands sent to the database. This history is kept in a list, named queries
, located in the django.db.connection
module. The easiest way to see what is kept in this list is to examine it from a shell session:
>>> from django.db import connection >>> connection.queries [] >>> from survey.models import Survey >>> Survey.objects.count() 2 >>> connection.queries [{'time': '0.002', 'sql': u'SELECT COUNT(*) FROM "survey_survey"'}] >>>
Here we see that queries
is initially empty at the beginning of the shell session. We then retrieve a count of the number of Survey
objects in the database, which comes back as 2. When we again display the contents of queries
, we see that there is now one query in the queries
list. Each element in the list is a dictionary containing two keys: time
and sql
. The value of time
is how long, in seconds, the query took to execute...