2017-10-20 63 views
0

En fonction du titre, je suis actuellement en train d'utiliser JDBC sur eclipse pour me connecter à mon PostgreSQL.Conversion de plan de requête Postgres en XML et stockage dans un fichier en utilisant Eclipse JDBC

J'ai exécuté des instructions EXPLAIN ANALYZE pour extraire des plans de requête de postgres lui-même. Cependant, est-il possible de stocker ces plan de requête dans une structure qui ressemble à un arbre? par exemple branche principale et sous branche etc. J'ai lu quelque part que c'est une bonne idée de le stocker d'abord dans le document XML et de le manipuler à partir de là.

Existe-t-il une API en Java pour moi? Merci!

+0

* "est-il possible de stocker ces plan de requête dans une structure qui ressemble à un arbre?" * Oui. --- * "Y a-t-il une API en Java pour moi?" * Quelle partie? Création de XML? Oui. Conversion des données 'EXPLAIN ANALYZE' en XML? Non, c'est à vous d'écrire. --- * "J'ai lu quelque part que c'est une bonne idée de le stocker d'abord dans un document XML et de le manipuler à partir de là." * Où avez-vous lu cela? Quelle * manipulation * feriez-vous? Manipuler XML (DOM) peut ne pas être le meilleur moyen de le faire. – Andreas

+3

wh pas simplement utiliser le format xml? .. par exemple 'xplain (analyser, format xml) sélectionner * depuis pg_database rejoindre pg_class sur true;' –

+0

Merci pour le conseil! Je ne savais pas qu'il y avait une chose telle que le format xml! était capable de réaliser ce que je voulais en l'utilisant – Jackelll

Répondre

1

essayez d'utiliser format xml par exemple

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