将Postgres查询计划转换为xml并使用Eclipse存储到文件中JDBC

问题描述:

根据标题,我目前在eclipse上使用JDBC连接到PostgreSQL。将Postgres查询计划转换为xml并使用Eclipse存储到文件中JDBC

我一直在运行EXPLAIN ANALYZE语句来从postgres自己检索查询计划。但是,是否可以将这些查询计划存储在类似树的结构中?例如主分支和子分支等。我在某处读到,先将它存储到xml文档并从那里操作它是一个好主意。

有没有Java中的API来实现这个目标?谢谢!

+0

*“是可以存储在类似于树的结构,这些查询计划?” *是。 --- *“有没有Java中的API来实现这一点?”*它的哪一部分?创建XML?是。将'EXPLAIN ANALYZE'数据转换为XML?不,这是给你写的。 --- *“我在某处读到,先把它存储到xml文件并从那里操作它是个好主意。”*你在哪里读过这些文件?你会做什么操作?操纵XML(DOM)可能不是实现它的最佳方式。 – Andreas

+3

wh不只是使用格式xml?..例如'xplain(analyze,format xml)select * from pg_database join pg_class on true;' –

+0

感谢您的提示!我不知道有格式xml这样的事情!通过使用它可以达到我想要的效果 – Jackelll

尝试使用format xml

t=# explain (analyze, format xml) select * from pg_database join pg_class on true; 
          QUERY PLAN 
---------------------------------------------------------------- 
<explain xmlns="http://www.postgresql.org/2009/explain">  + 
    <Query>              + 
    <Plan>             + 
     <Node-Type>Nested Loop</Node-Type>      + 
     <Join-Type>Inner</Join-Type>       + 
     <Startup-Cost>0.00</Startup-Cost>      + 
     <Total-Cost>23.66</Total-Cost>       + 
     <Plan-Rows>722</Plan-Rows>        + 
     <Plan-Width>457</Plan-Width>       + 
     <Actual-Startup-Time>0.026</Actual-Startup-Time>  + 
     <Actual-Total-Time>3.275</Actual-Total-Time>   + 
     <Actual-Rows>5236</Actual-Rows>       + 
     <Actual-Loops>1</Actual-Loops>       + 
     <Plans>             + 
     <Plan>            + 
      <Node-Type>Seq Scan</Node-Type>      + 
      <Parent-Relationship>Outer</Parent-Relationship> + 
    ...and so on