使用python的模块psycopg2打印SQL执行计划

J0A*_*NMM 3 psycopg2 explain sql-execution-plan python-3.x

在使用 python 和psycopg2模块时,有什么方法可以打印 SQL 执行计划中的信息以在我的终端中查看它吗?

我尝试了以下操作,但终端中没有显示任何内容:

cur.execute(cur.mogrify('explain analyze ' + sql_query, vals)
Run Code Online (Sandbox Code Playgroud)

并使用print回报None

print(cur.execute(cur.mogrify('explain analyze ' + sql_query, vals))
Run Code Online (Sandbox Code Playgroud)

这个问题,我也尝试了以下,但也没有奏效:

cur.execute("LOAD 'auto_explain';")
cur.execute("SET auto_explain.log_min_duration = {min_ms};".format(min_ms=0))
cur.execute(sql_query, vals)
Run Code Online (Sandbox Code Playgroud)

J0A*_*NMM 5

在发布问题后,我想出了答案。实际上很基本。我只需要获取它,就像任何其他SELECT命令一样。

如果其他人有同样的问题:

cur.execute(cur.mogrify('explain analyze ' + sql_query, vals))
analyze_fetched = cur.fetchall()
print(analyze_fetched)
Run Code Online (Sandbox Code Playgroud)