3 votes

Java Parsing Oracle Explain Plan

Je me demande s'il existe une bibliothèque permettant d'analyser le plan d'explication d'Oracle dans une structure de données.

Etant donné la requête suivante :

 select prod_category, avg(amount_sold)
 from sales s, products p
 where p.prod_id = s.prod_id
 group by prod_category;

Le plan d'explication peut ressembler à ce qui suit :

 ------------------------------------------
  Id   Operation              Name   
 ------------------------------------------
    0  SELECT STATEMENT              
    1   HASH GROUP BY                
    2    HASH JOIN                   
    3     TABLE ACCESS FULL   PRODUCTS
    4     PARTITION RANGE ALL        
    5      TABLE ACCESS FULL  SALES  
 ------------------------------------------

Je veux un analyseur qui analyse le plan dans une structure de données qui permet de visualiser et d'analyser le plan comme suit :

  SELECT STATEMENT
        |
     GROUP BY
        |
       JOIN
   _____|______
  |            |
 ACCESS     ACCESS
 (PRODUCTS) (SALES)

J'ai remarqué que l'application Développeur SQL visualise le plan. J'hésite à analyser manuellement le texte et je me demande donc s'il existe une bibliothèque qui pourrait m'aider à analyser le plan.

3voto

Egor Skriptunoff Points 11564

Le plan est déjà stocké sous forme de structure hiérarchique pour une visualisation aisée :

  select 
    id, 
    parent_id, 
    lpad(' ', 2*(level-1), ' ')||operation||' '||object_name as desc
  from your_plan_table
  start with parent_id is null 
  connect by prior id = parent_id

Comment cette structure peut-elle être encore plus pratique ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X