Oracle:SQL优化-第2部分
如何优化下面的SQL?此查询将永远运行:Oracle:SQL优化-第2部分,sql,oracle,Sql,Oracle,如何优化下面的SQL?此查询将永远运行: SELECT DISTINCT CONNECT_BY_ROOT a.dst_ID_key AS root_ID_key, a.src_ID_key FROM fact_table a CONNECT BY NOCYCLE PRIOR a.src_ID_key = a.dst_ID_key START WITH a.dst_ID_key IN (SELECT b.ID_key FROM T
SELECT DISTINCT CONNECT_BY_ROOT a.dst_ID_key AS root_ID_key, a.src_ID_key
FROM fact_table a
CONNECT BY NOCYCLE PRIOR a.src_ID_key = a.dst_ID_key
START WITH a.dst_ID_key IN (SELECT b.ID_key
FROM TableA b
JOIN TableB c
ON (c.name = b.name AND c.school = b.school)
WHERE b.status = 'Active')
in子句中的查询运行不到5秒,返回3000行。事实表包含2000万条记录
提前谢谢 您是否获得性能调整EM包的许可证?如果是这样,我将首先执行查询并运行SQL调优顾问。如果不了解更多关于SQL语句的表和索引的信息,就很难对SQL语句有太多的帮助
也就是说,当您使用IN子查询进行筛选时,事情往往会运行缓慢。从逻辑上讲,每个可能的结果都会执行该子查询。如果您可以将其重写为不使用子查询,那么您可能会有更好的运气;我很幸运地将这样的子查询转换为非层次查询中的JOIN语句。向我们展示您的表、索引和查询计划。