Sql 带有连接的分层查询。性能问题

Sql 带有连接的分层查询。性能问题,sql,oracle,oracle10g,hierarchy,hierarchical,Sql,Oracle,Oracle10g,Hierarchy,Hierarchical,我正在尝试形成一个查询,以获取多个级别的主管下的下属的详细信息。层次结构如下: 总经理-区域经理-地区经理-主管-员工 我的要求是,这个层次结构中的任何经理都应该能够看到层次结构底部员工的详细信息 到目前为止,我已经尝试了以下选项: 执行时间为1:102秒 WITH w AS ( select personId from assignments start with supervisorId = :inputId Connect by prior personId = supervisorId

我正在尝试形成一个查询,以获取多个级别的主管下的下属的详细信息。层次结构如下: 总经理-区域经理-地区经理-主管-员工 我的要求是,这个层次结构中的任何经理都应该能够看到层次结构底部员工的详细信息

到目前为止,我已经尝试了以下选项:

执行时间为1:102秒

WITH w AS 
( select personId from assignments start with supervisorId = :inputId
Connect by prior personId = supervisorId)
Select columns FROM a,b
where a.column = b.column
And a.personId = w.personId;
2分92秒

 Select columns FROM a,b
    where a.column = b.column
    And a.personId IN   ( select personId from assignments start with supervisorId = :inputId
    Connect by prior personId = supervisorId);
3:0.75秒[未提取数据]

WITH w AS ( select columns FROM a,b
        where a.column = b.column)
Select w.columns from w, assignments
Where t.personId = assignments.personId
Start with supervisorId = :inputId
Connect by prior personId = supervisorId.
在选项3中,由于连接条件是在connect by之前首先执行的,所以它不会返回任何行。请注意,当获取单个员工的数据时,执行只需不到一秒钟,即删除分层查询部分和分配表,并提供单个人员的personId

因此,我正在寻找一个有效的解决方案,以满足这一要求。欢迎使用任何方法,即使不包括分层查询

谢谢


Anoop

伙计们,有什么方法可以提高分层查询的性能吗?伙计们,有什么方法可以提高分层查询的性能吗?