先前查询连接很慢

时间:2014-06-03 10:44:27

标签: sql

使用“CONNECT BY PRIOR”在SQL上遇到性能问题。 在表temp_hierarchy中有大约480条记录,使用先前连接的SQL非常慢,大约需要8到10分钟。

我认为数据具有长周期记录,例如1-> 2,2-> 3和3-> 1,这导致速度变慢。

这是我正在使用的查询。

    select  distinct t.id, t.parent_id, t.child_id,
    leveling, level as check_level
    from temp_hierarchy t
    start with t.parent_id = 0
    connect by nocycle PRIOR t.child_id = t.parent_id; 

表格结构如下:

desc temp_hierarchy

   Name                 Null Type                        
   -----                ------------

   ID                        NUMBER(19)                  
   PARENT_ID                 NUMBER(19)                  
   CHILD_ID                  NUMBER(19)                  
   LEVELING                  NUMBER(19)   

索引是在列parent_id和child_id上定义的。

任何改善查询性能的建议都会有很大帮助。或者如何找到长循环记录?伪列CONNECT_BY_ISCYCLE返回全0。

0 个答案:

没有答案