0
我可以这样使用吗?我可以同时设置MAPJOIN提示和STREAMTABLE提示吗?
select /*+ MAPJOIN(t2)*//*+ STREAMTABLE(t1)*/
t1.c1.
t2.c1
from t1
left outer join t2
on t1.c1 = t2.c1;
我对不同的连接键上的“STREAMTABLE”感到困惑。
例如: t3是最大表,t2是次要大表,t1是最小表。
select
/*+ STREAMTABLE(t2)*/
t1.c3,
t2.c2,
t3.c3
from t2
left outer join
t1
on t2.c1=t1.c1
left outer join
t3 on t2.c2=t3.c2;
所以,如果当t2连接t1是可以的。但是当t2连接t3时,如果t2仍然被视为大表? 如何处理这种情况?
请不要使用这些提示。基于成本的优化器将完成这项工作。使用基于成本的优化器+统计信息。 – leftjoin
@leftjoin嗨,我该怎么做?我的配置文件版本是0.13.x?我该怎么做? – user5107182
升级。 0.14 Tez上的Hive工作速度更快,不需要任何提示。 – leftjoin