使用with tabe as之后导致执行时间过长问题

【详述】问题详细描述
使用with tabe as之后导致执行时间过长,目前不清楚是什么原因?不使用with table as 只需要2s左右,使用之后需要2分钟左右。
【背景】做过哪些操作?

【业务影响】
【StarRocks版本】例如:1.18.2
2.1.2
【集群规模】例如:3fe(1 follower+2observer)+5be(fe与be混部)
2fe(1 follower+1observer) + 3be(fe与be混部)
【机器信息】CPU虚拟核/内存/网卡,例如:48C/64G/万兆
【附件】

  • fe.warn.log/be.warn.log/相应截图
  • 慢查询:

你好,确认下这两个变量的值
show variables like ‘%parallel_fragment_exec_instance_num%’;应该为1
show variables like ‘%pipeline_dop%’;应该为0

show variables like ‘%parallel_fragment_exec_instance_num%’; 这个参数返回是8
show variables like ‘%pipeline_dop%’; 这个参数返回是0
设置parallel_fragment_exec_instance_num为1时执行也时很慢,也是基本2分钟才能执行完成。

set enable_pipeline_engine=false关闭pipeline,set parallel_fragment_exec_instance_num=8
执行也是2分钟吗

按照set parallel_fragment_exec_instance_num = 8; set enable_pipeline_engine=false; 设置之后,运行时间是1分钟了。
我设置set parallel_fragment_exec_instance_num = 100;之后查询时间为40s,
set parallel_fragment_exec_instance_num = 1000;查询时间还是40s,
您看还有什么可以提高速度的设置吗?这个并行数设置多少合理呢?我设置1000和100的效果是一样的。

辛苦发下建表语句和profile

你好:
sql语句:
set is_report_success=true;
set parallel_fragment_exec_instance_num = 100;
set enable_pipeline_engine=false;
with event_login_userinfo as(
select
distinct concat(distinct_id,’-’,devicecode) as user_id
, cast(time as date) as days
from example_db.ods_fact_events_userinfo_ct001
where event = ‘login’
)
select
user_id
, days
from event_login_userinfo
;

profile文件:profile.txt (54.6 KB)

麻烦了,谢谢

设置下 set new_planner_agg_stage = 1;之后再跑下sql,另外看到输出结果有1.9kw行,耗时主要花在传输结果上了,客户端到服务端不是跨网络的吧?另外可以跑下输出结果条数少点的看看。

设置下 set new_planner_agg_stage = 1;之后sql 执行为7s,这个参数代表什么意思呢?加这个的原因是什么呢?任何sql语句都加这个设置吗?方便解释一下吗?谢谢

set new_planner_agg_stage=1这个参数是设置查询走1阶段聚合。

你好,不是所有sql语句都加这个设置,是因为您这边的sql 聚合前后数据量差异不大,走一阶段聚合相比于走两阶段聚合回少一些网络io