如何让PostgreSQL的psql客户端输出EXPLAIN的合法JSON结果?
去除psql中EXPLAIN JSON输出冗余内容的方法
方法1:执行命令时指定psql参数
直接在调用psql执行命令时添加参数,一次性输出纯JSON:
psql -d 你的数据库名 -t -A -c "EXPLAIN (ANALYZE, FORMAT JSON) SELECT a FROM t;"
-t:关闭表头输出(去掉"QUERY PLAN")-A:启用非对齐模式,移除换行处的+符号及多余空格
方法2:在psql会话内设置参数
如果已处于psql交互会话中,先执行以下设置命令,再运行EXPLAIN:
\pset tuples_only on \pset format unaligned
设置完成后,执行EXPLAIN (ANALYZE, FORMAT JSON) SELECT a FROM t;即可得到无冗余的JSON输出。
方法3:用文本工具过滤已有输出
如果已经得到带冗余的输出,可通过sed等工具清理:
# 假设输出已保存到文件output.txt sed '/QUERY PLAN/d; s/^+//' output.txt > clean.json
该命令会删除包含"QUERY PLAN"的行,并移除每行开头的+符号。
内容的提问来源于stack exchange,提问作者oran g
相关产品推荐
相关产品推荐

