使用 python 的模块 psycopg2 打印 SQL 执行计划
Print SQL execution plan with python's module psycopg2
在使用 python 和 psycopg2
模块时,有什么方法可以打印 SQL 执行计划中的信息,以便在我的终端中看到它?
我尝试了以下操作,但终端中没有显示任何内容:
cur.execute(cur.mogrify('explain analyze ' + sql_query, vals)
并使用 print
returns None
:
print(cur.execute(cur.mogrify('explain analyze ' + sql_query, vals))
从this question开始,我也尝试了以下方法,但也没有用:
cur.execute("LOAD 'auto_explain';")
cur.execute("SET auto_explain.log_min_duration = {min_ms};".format(min_ms=0))
cur.execute(sql_query, vals)
刚发布问题我就找到了答案。实际上很基本。我只需要获取它,就像使用任何其他 SELECT
命令一样。
如果其他人有同样的问题:
cur.execute(cur.mogrify('explain analyze ' + sql_query, vals))
analyze_fetched = cur.fetchall()
print(analyze_fetched)
在使用 python 和 psycopg2
模块时,有什么方法可以打印 SQL 执行计划中的信息,以便在我的终端中看到它?
我尝试了以下操作,但终端中没有显示任何内容:
cur.execute(cur.mogrify('explain analyze ' + sql_query, vals)
并使用 print
returns None
:
print(cur.execute(cur.mogrify('explain analyze ' + sql_query, vals))
从this question开始,我也尝试了以下方法,但也没有用:
cur.execute("LOAD 'auto_explain';")
cur.execute("SET auto_explain.log_min_duration = {min_ms};".format(min_ms=0))
cur.execute(sql_query, vals)
刚发布问题我就找到了答案。实际上很基本。我只需要获取它,就像使用任何其他 SELECT
命令一样。
如果其他人有同样的问题:
cur.execute(cur.mogrify('explain analyze ' + sql_query, vals))
analyze_fetched = cur.fetchall()
print(analyze_fetched)