Sql 通过先前查询连接速度较慢
我在使用“连接方式”的SQL上遇到性能问题。 在表temp_层次结构中有大约480条记录,使用connect by Preor的SQL非常慢,大约需要8到10分钟 我相信数据有很长的周期记录,比如1->2、2->3和3->1,这会导致速度变慢 这是我使用的查询Sql 通过先前查询连接速度较慢,sql,Sql,我在使用“连接方式”的SQL上遇到性能问题。 在表temp_层次结构中有大约480条记录,使用connect by Preor的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 st
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;
表格结构如下:
描述温度层次结构
Name Null Type
----- ------------
ID NUMBER(19)
PARENT_ID NUMBER(19)
CHILD_ID NUMBER(19)
LEVELING NUMBER(19)
名称空类型
----- ------------
身份证号码(19)
家长身份证号码(19)
儿童身份证号码(19)
平层编号(19)
索引是在列parent\u id和child\u id上定义的
任何改进查询性能的建议都会有很大帮助。或者如何找到长周期记录?伪列CONNECT\u BY\u ISCYCLE返回所有0。我不确定这对您的问题是否重要,但不清楚为什么表中有
id
字段和child\u id
字段。这两个字段有何不同?id列只是temp_hierarchy表中记录的运行序列。它只是用于识别唯一的记录。