我正在尝试分析我们的 Django (1.3) Web 应用程序的 SQL 性能。我添加了一个附加到django.db.backends
并设置的自定义日志处理程序DEBUG = True
,这使我可以查看所有正在执行的数据库查询。
但是 SQL 不是有效的 SQL!实际查询是select * from app_model where name = %s
使用传入的一些参数(例如"admin"
),但是日志消息没有引用参数,所以 sql 是select * from app_model where name = admin
,这是错误的。这也发生在使用django.db.connection.queries
. AFAIK django 调试工具栏有一个复杂的自定义光标来处理这个问题。
更新对于那些建议使用 Django 调试工具栏的人:我知道那个工具,它很棒。但是它不能满足我的需要。我想运行我们应用程序的示例交互,并聚合使用的 SQL。DjDT 非常适合展示和浅层学习。但对于汇总和总结数十页的交互作用并不好。
是否有任何简单的方法来获得运行的真实、合法的 SQL?