【发布时间】:2014-05-11 10:55:24
【问题描述】:
我们使用 SQL alchemy 作为我们项目的 ORM。我正在尝试获取和分析生成的原始 SQL(通过 SQL alchemy)以提高性能。 有人可以告诉我是否有办法在原始 SQL 提交到数据库之前收集它。
【问题讨论】:
-
print MyModel.objects.all().query应该给你原始查询。
标签: python sql django sqlalchemy
我们使用 SQL alchemy 作为我们项目的 ORM。我正在尝试获取和分析生成的原始 SQL(通过 SQL alchemy)以提高性能。 有人可以告诉我是否有办法在原始 SQL 提交到数据库之前收集它。
【问题讨论】:
print MyModel.objects.all().query 应该给你原始查询。
标签: python sql django sqlalchemy
您可以在实例化引擎时设置echo=True:
>>> from sqlalchemy import create_engine
>>> engine = create_engine("mysql://localhost/mydb", echo=True)
这会导致所有 SQL 语句都通过普通的 Python 日志记录。您可以使用适当的日志配置轻松地将这些消息捕获到文件中,如这些Python logging examples 所示。
【讨论】:
echo=True 会使这些语句通过常规 Python 日志记录得到记录。您所要做的就是设置日志文件处理程序或适当地设置系统日志,您就可以轻松捕获这些消息。