我想知道是否有任何库允许将oracle的解释计划解析为数据结构。
给出以下查询:
select prod_category, avg(amount_sold)
from sales s, products p
where p.prod_id = s.prod_id
group by prod_category;
解释计划可能如下所示:
------------------------------------------
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可视化了该计划。我不愿意手动解析文本,所以我想知道是否有任何库可以帮助解析该计划。
答案 0 :(得分: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
这种结构如何更方便?