多表sql查询慢问题

【详述】当表数据量只有2万条数据时,查询时间为:1 min 56.19 sec ,同样的语句,当表的数据量只有2千时,才0.10s就能查出结果,差异也太大了,请问该如何优化,提高性能。
图一:表数据量2万条


图二:表数据量2千条

【背景】
【业务影响】
【StarRocks版本】2.0.1版本
【集群规模】单节点fe+be混布 32c 64G
【机器信息】阿里云机器
【附件】

  • sql.txt (589 字节)
  • 慢查询:
    • Profile信息: profile.txt (335.7 KB)
    • 并行度:parallel_fragment_exec_instance_num=16
    • cbo是否开启:
      ±------------------------------------±------+
      | Variable_name | Value |
      ±------------------------------------±------+
      | cbo_enable_dp_join_reorder | true |
      | cbo_enable_greedy_join_reorder | true |
      | cbo_enable_low_cardinality_optimize | true |
      | cbo_enable_replicated_join | true |
      | cbo_max_reorder_node_use_dp | 10 |
      | cbo_max_reorder_node_use_exhaustive | 4 |
      | cbo_use_correlated_join_estimate | true |
      ±------------------------------------±------+
    • be节点cpu和内存使用率截图

请补充下建表语句

create table v_event
(
dt DATE,
event VARCHAR(50),
ds DATETIME,
dc_user_id BIGINT,
ouid STRING,
platform INT,
channel INT,
server INT,
client_ip STRING
)
DUPLICATE KEY(dt,event,ds)
PARTITION BY RANGE(dt)
(
START (“2022-01-01”) END (“2022-12-31”) EVERY (INTERVAL 1 DAY)
)
DISTRIBUTED BY HASH(dc_user_id) BUCKETS 64
PROPERTIES(
“dynamic_partition.enable” = “true”,
“dynamic_partition.time_unit” = “DAY”,
“dynamic_partition.prefix” = “p”,
“dynamic_partition.end” = “3”,
“dynamic_partition.buckets” = “64”,
“replication_num” = “1”
);

经仔细核查,发现join字段dc_use_id,数据有问题,导致join时数据成倍递增。