是否可以将SQL注释添加到使用ORM构建的查询中?

Tim*_*ten 8 sql django orm comments

我试图在大型Django 1.3 Web应用程序中识别慢查询.由于很难将慢查询日志中的原始sql查询与代码中的特定ORM语句相匹配,我想知道是否可以向使用ORM构造的查询添加SQL注释,类似于..

Object.objects.filter(Q(pub_date__lte=datetime.now)).comment('query no. 123')
Run Code Online (Sandbox Code Playgroud)

Tim*_*ten 5

通过在django-user邮件列表上使用.extra()获取原始SQL命令找到的解决方案:

Object.objects.filter(Q(pub_date__lte=datetime.now()).extra(where=['1=1 /* query no. 123 */'])
Run Code Online (Sandbox Code Playgroud)


Dar*_*ody 1

对于 2022 年以后阅读的人来说,现在有一个更好的答案:

\n

Google 的 sqlcommenter 项目有一个 Django 中间件

\n
\n

[A] Django 中间件,其目的是在执行之前增强 SQL 语句,并提供有关控制器和用户代码的信息,以帮助稍后在从数据库服务器 \xe2\x80\x99s 日志中检查这些语句后做出数据库优化决策。

\n
\n