记录调试设置为False的Django SQL查询

记录调试设置为False的Django SQL查询,sql,django,optimization,django-orm,Sql,Django,Optimization,Django Orm,我知道,在调试打开时,可以通过查看获取当前请求/响应的所有SQL查询。这对发展也有很大帮助 问题是,我的生产服务器处于高负载状态,我希望记录每个视图执行的查询,以便可以优化首先创建更多查询的页面 在Django 1.3中,我在Django/db/backends/\uuuu init\uuuuuuuuuuupy中看到classBaseDatabaseWrapper,它有一个属性use\u debug\u cursor。此类是表示默认数据库连接()的django.db.connection对象的包

我知道,在调试打开时,可以通过查看获取当前请求/响应的所有SQL查询。这对发展也有很大帮助

问题是,我的生产服务器处于高负载状态,我希望记录每个视图执行的查询,以便可以优化首先创建更多查询的页面


在Django 1.3中,我在Django/db/backends/\uuuu init\uuuuuuuuuuupy中看到class
BaseDatabaseWrapper
,它有一个属性
use\u debug\u cursor
。此类是表示默认数据库连接()的
django.db.connection
对象的包装器。似乎将此属性设置为true会导致Django使用来自
Django/db/backends/util.py的
CursorDebugWrapper
,它记录它执行的所有查询,而不是不使用的
CursorWrapper

use\u debug\u cursor
在Django 1.2中不存在,这是我目前在这台机器上安装的,所以我现在无法测试它。如果我有几分钟的时间,我将尝试启动一个虚拟的1.3项目来测试这一点…我可能会在这里超过我的头

Django 1.8中的
use\u debug\u cursor
被重命名为
force\u debug\u cursor