Performance 如果oracle';从connect by'开始;使用';递归调用';和';排序(内存)和#x27;会增加。

Performance 如果oracle';从connect by'开始;使用';递归调用';和';排序(内存)和#x27;会增加。,performance,oracle,query-optimization,hierarchical-data,Performance,Oracle,Query Optimization,Hierarchical Data,如果执行以下SQL,将返回以下记录 select id from group start with id = 1 connect by prior PARENT = id result rows: 2 5 7 8 10 根据这个结果,我预测了以下几点 因为已经返回了五行,“递归调用”只执行了6次 由于未执行排序处理,“排序”(内存)执行0次 然而,结果和我的结果相差很大。 为什么会这样 此外,尽管是按照组织层次结构来处理路由,但这种SQL有什么不好的地方吗 456 recursive ca

如果执行以下SQL,将返回以下记录

select id
from group
start with id = 1
connect by prior PARENT = id

result rows:
2
5
7
8
10
根据这个结果,我预测了以下几点

  • 因为已经返回了五行,“递归调用”只执行了6次
  • 由于未执行排序处理,“排序”(内存)执行0次
  • 然而,结果和我的结果相差很大。 为什么会这样

    此外,尽管是按照组织层次结构来处理路由,但这种SQL有什么不好的地方吗

    456  recursive calls
    13  sorts (memory)
    

    得到五行结果并不意味着什么。您可能有一个非常复杂的结构,导致许多递归调用。表中有多少行?哪些列被索引?组表记录编号为4000它是特定组织所属组的ID。Table.PARENT已指出组记录的父级组织的ID。Table.ID表示一条记录,其中记录本身表示一个组织。您有一大堆问题已经回答,显然对您有所帮助,但您没有。请不要这样做,否则人们可能不愿意帮助你。