如何通过该表数据分布改变执行计划
 
通知
清除全部

如何通过该表数据分布改变执行计划  


adagio2007
帖子: 4
初出茅庐
已加入: 4周 前

是上面两种不同的join 方式 查询时间相差很多。前面前面通过多次broadcast motion ,hash join 最后在一次redistribute motion 比hash join 一次 就redistribute motion 一次时间快了5倍。

如何能通过改变表的分布去改变执行计划呢  让其是 多次broadcast motion ,hash join 最后在一次redistribute motion 这种计划呢 

 

PS: 复制表  随机键 关联键  都试过  执行计划完全没有改变

 

执行计划

PS  fact 表大概4kw的数据  维度表全部小于3w  除了物material 和 project  还有assess2 center 维度

4 回复
kainwen
帖子: 4
初出茅庐
已加入: 2月 前

图片看起来非常不方便,应该给出文本的查询计划,SQL,表的定义。都应提供文本格式的。

 

如果有简单的复现办法就更好了。

回复
1 回复
adagio2007
已加入: 4周 前

初出茅庐
帖子: 4

@kainwen详见回复

回复
adagio2007
帖子: 4
初出茅庐
已加入: 4周 前

其中就有3-4各表的数据量比较大,其他的表全部小于3w 条数据,表定义

表都是appendonly true compresslevel=5  distributed by join 的键,小于3w的表就是duplicated

回复
adagio2007
帖子: 4
初出茅庐
已加入: 4周 前

可以看到前面几个小表在where 条件里面有过滤的都没有做redistribute motion,而没有做过滤的关联的时候全部做了redistribute motion

回复

关注微信公众号

Greenplum中文社区

Greenplum官方微信群

扫码加入我们的技术讨论,请备注“网站”