3

オラクルのexplainプランをデータ構造に解析できるライブラリがあるのだろうか。

次のクエリが与えられます:

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

Explainプランは次のようになります。

 ------------------------------------------
  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  
 ------------------------------------------

計画を次のように視覚化および分析できるデータ構造に解析するパーサーが必要です。

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

OracleのSQLDeveloperが計画を視覚化していることに気づきました。テキストを手動で解析するのは気が進まないので、計画の解析に役立つライブラリがあるかどうか疑問に思います。

4

1 に答える 1

3

計画は、簡単に視覚化できるように階層構造として既に保存されています。

  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

この構造をさらに便利にするにはどうすればよいでしょうか。

于 2013-03-01T10:16:04.237 に答える