sqlalchemy查询postgrel时如何打印原始sql
问题背景:
有个pg查询的sql很慢, 需要优化, 打印出原始sql来explain:
from sqlalchemy.dialects import postgresql
query = Config.query.all()
try:
# 引入方言, literal_binds 指定参数全部替换
compiled = query.statement.compile(
dialect=postgresql.dialect(), compile_kwargs={"literal_binds": True}
)
print(compiled.string)
except Exception as e:
print("原始sql生成失败: ", str(e))
得到原生sql就可以去客户端进行分析了;