GBase 8a Mpp Cluster集群产品性能优化篇之关联条件-案例1

案例1-关联条件的顺序优化

优化原因:

     当前版本的GNode中,LEFT JOIN的ON条件中的右表单表条件会在JOIN之后执行,尤其当LEFT JOIN的右表是大表时,会导致参与JOIN的数据量过大,增加JOIN耗时。

SQL特征

LEFT JOIN语句

ON条件中包含右表的单表条件

优化场景

LEFT JOIN的右表是大表

ON条件中,右表的单表条件过滤后的数据量占右表总数据量比较少(约10%左右)。

注:因为本优化改写是把右表改写为子查询,需要考虑子查询额外的物化消耗,因此不是所有此类SQL改写都能提升性能,尤其是当查询的投影列中出现大量右表列时。

优化效果

     通过改写,把右表单表过滤放在一个独立的子查询中,保证右表的过滤在JOIN前执行,达到优化查询性能的目的。

示例语句:

select x1.id2, x2.id2, x2.id3 from x1 left join x2 on x1.id2 = x2.id2 and x2.id3 = 301;

改写后语句

     select x1.id2, x.id2, x.id3 from x1 left join (select x2.id2, x2.id3 from x2 where x2.id3 = 301) x;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值