我有一个sql脚本如下:
-- Query 1
with
ult(col1,col2,col3,col4) as (
select distinct t1.col1,t1.col2,t1.col3,t1.col4
from table1 as t1
left join table2 as t2 on t1.Seq_Key=t2.Seq_Key
where t2.index in 'myvalue')
-- Query 2
select distinct t1.col2,t2.col5,t3.col7
from table1 t1
where t1.col1 in (select col1 from ult)
and t1.col2 = (select col2 from ult)
and t1.col3 = (select col3 from ult)
and t1.col4 = (select col4 from ult)
所以基本上里面有两个查询,我想使用query1的查询结果作为查询2的条件。我试过只运行查询1,它将采取< 0.1秒,并且仅运行查询2(如果我手动将查询结果从查询1中删除),它将采用< 1秒。但如果我按上述方法合并,则需要几分钟才能执行! (约4-5分钟)。我很好奇,我不是这方面的专家。有没有人可以帮助解释发生了什么以及如何优化脚本?
非常感谢!