2.3.8的版本
在看一条sql的执行profile的时候,发现一个42秒的sql,41秒的时间都用在了如下图标注的地方:

请问这个pendingtime这里具体是进行什么处理?
这个是pipe在等前一个pipe的数据,实际耗时在前面的算子,发个profile看下
看着耗时主要是 left join[shuffle] 这部分的join exchange和socialmedia_user_infos这个表的scan。
left join[shuffle] 这块的shuffle去掉吧,正常应该走broadcast,走broadcast的时候也能用到runtimefilter过滤左表数据
parallel_fragment_exec_instance_num另外开启pipeline的话,这个配置为1吧,pipeline引擎下使用的pipeline_dop
好的,我尝一下。
我设置了 set parallel_fragment_exec_instance_num=1;然后去掉了shuffle,跑了三次,三次都报错:
Memory of process exceed limit. try consume:267395072 Used: 163908347708, Limit: 164079688089. Mem usage has exceed the limit of BE