2017-10-20 7 views
0

タイトルごとに、私は現在Eclipseを使用してPostgreSQLに接続しています。Postgresクエリプランをxmlに変換し、Eclipseを使用してファイルに保存するJDBC

私はEXPLAIN ANALYZEステートメントを実行して、postgres自体からクエリプランを取得しています。ただし、これらのクエリプランをツリーに似た構造に格納することは可能ですか?例えば、メインブランチやサブブランチなどのようなものです。私はどこかで、まずXMLドキュメントに格納し、そこから操作することをお勧めします。

これを達成するためのAPIはJavaにありますか?ありがとう!

+0

*例えばformat xmlを使用してみてください「それは木に似た構造でこれらのクエリプランを格納することができる?」*はい。 --- *「これを達成するためのJavaのAPIはありますか?」*どの部分が? XMLを作成しますか?はい。 'EXPLAIN ANALYZE'データをXMLに変換しますか?いいえ、それはあなたが書くことです。 --- * "どこかでXML文書に格納してそこから操作することをお勧めします" *どこを読んだのですか? *あなたは何をしていますか? XML(DOM)を操作するのが最善の方法ではないかもしれません。 – Andreas

+3

フォーマットxmlを使用しているだけではなく、 'xplain(analyze、format xml)select * from pg_database pg_class on true;' –

+0

チップをありがとう!私はフォーマットxmlのようなことがあったのを知らなかった!それを使って私が望むものを達成することができました – Jackelll

答えて

1

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 
関連する問題