我有3张桌子。 2是相似的。
table1/table2
col1 string
col2 string
col3 integer
table3
51 columns. strings, ints, doubles, dates
我很好奇哪个会更快。
with s1 as(
Select *
from table1
union all
Select *
from table2
)
select *
from s1
inner join table3 t3
on s1.col1 = t3.col4
或
with s1 as(
Select *
from table1 t1
inner join table3
on t1.col1 = t3.col4
),s2 as(
Select *
from table2 t2
inner join table3
on t2.col1 = t3.col4
)
Select *
from s1
union all
Select *
from s2
表格未被分割或编入索引。我想知道这对两者都有用 蜂巢和甲骨文。
编辑02.02.2017 我试着在蜂巢中检查它。大约在同一时间开始。
union before join
Time taken: 539.593 seconds
jbu
Time taken: 603.071 seconds
不幸的是,几个小时后我决定检查结果
jbu
Time taken: 308.205 seconds
结果取决于群集的繁忙程度((
答案 0 :(得分:0)
我唯一能看到的是第二个查询扫描表2两次。但是没有任何执行计划信息,这只是一个猜测。正如其他人所说,为什么不测试并让我们知道;也许分享执行计划!
答案 1 :(得分:-2)
绝对第一个更快。
with s1 as(
Select *
from table1
union all
Select *
from table2
)
select *
from s1
inner join table3 t3
on s1.col1 = t3.col4