mirror of
https://github.com/evennia/evennia.git
synced 2026-03-16 12:56:30 +01:00
41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
"""
|
|
This is a little routine for viewing the sql queries that are executed by a given
|
|
query as well as count them for optimization testing.
|
|
|
|
"""
|
|
import sys, os
|
|
#sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))))
|
|
#os.environ["DJANGO_SETTINGS_MODULE"] = "game.settings"
|
|
from django.db import connection
|
|
|
|
|
|
def count_queries(exec_string, setup_string):
|
|
"""
|
|
Display queries done by exec_string. Use setup_string
|
|
to setup the environment to test.
|
|
"""
|
|
|
|
exec setup_string
|
|
|
|
num_queries_old = len(connection.queries)
|
|
exec exec_string
|
|
nqueries = len(connection.queries) - num_queries_old
|
|
|
|
for query in connection.queries[-nqueries if nqueries else 1:]:
|
|
print query["time"], query["sql"]
|
|
print "Number of queries: %s" % nqueries
|
|
|
|
if __name__ == "__main__":
|
|
|
|
# setup tests here
|
|
|
|
setup_string = \
|
|
"""
|
|
from evennia.objects.models import ObjectDB
|
|
g = ObjectDB.objects.get(db_key="Griatch")
|
|
"""
|
|
exec_string = \
|
|
"""
|
|
g.tags.all()
|
|
"""
|
|
count_queries(exec_string, setup_string)
|