SQL慢查询分析

【详述】慢查询。。在实际生产中发现sql运行很慢
表信息:三张表 a b c连续left join 数据量:a三百万,b表 1千,c表2千万, sql运行时长大概需要六分钟,c表为拉链表 join条件为: a.key = c.key and a.number between c.start and c.end
下面的profile是把条件范围缩小 执行了6分钟成功的慢查询 :实际a表全表有1.5亿 限制后 只有三百万
监控观察cpu和mem资源又很空闲,前来请教大佬
【StarRocks版本】例如:1.19.2
【集群规模】例如:3fe+5be
【机器信息】32core+128 mem
【附件】

  • 慢查询:

監控信息:

show variables like ‘%parallel_fragment_exec_instance_num%’; show variables like ‘%exec_mem_limit%’;看下结果值大小。

mem_limit之前修改到32G了
刚发现parallel_fragment_exec_instance_num 这个参数 好像有上调的空间。。
我把这个并发调高点试下
还有个问题 就是 mem_limit 这个参数是单个be上的limit,还是所有BE的limit 也就是整个SQL在集群总计使用的mem

mem_limit和exec_mem_limit是两个参数,前者是BE可以使用节点的总内存占比,目前19版本默认软限制到80%,可短暂超过,超过后会将内存释放给os。后者是单查询单并行度的内存限制。两者都是节点级别的限制,不是集群级别的。