【已解决】两表join,查询慢且内存溢出,尝试调整join顺序后无效果

Viewed 69

环境:36个BE节点,设置单节点最大内存为30G左右,CPU核数48C
版本:2.1.3(2.1.1也有同样问题)
select a.* from a,b where a.id=b.id
一个大表和一个小表进行等值连接,查询慢且占用内存很大,导致内存溢出。
处理过程:
1.查看执行计划,发现BuildRows数据量很大(十几万),尝试设置set enable_cost_based_join_reorder = true后,大表还是在右表, BuildRows数据量还是很大。
2.尝试使用select a.* from a where a.id in ('','','')执行很快,且内存使用量极少。

是不是调整join顺序的参数是对外表不起作用呢(注:a是hive外表)

1 Answers

【问题状态】已处理
【问题处理】基于 Join Hint 进行优化解决