我在 XL 仓库上对 21 GB 数据进行了 90 分钟的简单查询,然后取消了查询。前十分钟后,除了“通过网络发送的字节数”指标之外,查询配置文件中没有任何显着变化,该指标在整个时间段内稳步增加,并且在我取消查询时已超过 1000 GB。什么会导致这么多数据通过网络传输?我可以采取哪些措施来提高此查询的性能?
查询:
select
c.client_id,
c.client_created_date,
min(cd.status_date) as first_trial_date
from clients_d as c
left join clients_daily_a as cd
on c.client_id = c.client_id
and cd.started_trial
group by 1, 2
clients_d 表小于 1 GB,有 4,000,000 行,并且在 client_id 上是唯一的。 client_daily_a 表大小为 21 Gb,有 600,000,000 行,并且在 client_id 和 status_date 上是唯一的。 Started_Trial 是一个布尔字段。
按如下方式更改查询会导致运行时间为 30 秒。我不知道为什么它会有所不同。
select
c.client_id,
c.client_created_date,
min(iff(cd.started_trial, cd.status_date, null)) as first_trial_date
clients_d as c
inner join clients_daily_a as cd
on c.client_id = c.client_id
group by 1, 2