GBase 8a
运维管理
文章
Gbase8a MPP 关联顺序
发表于2025-12-22 17:38:4261次浏览3个评论
优化原因GCluster的优化器不会调整LEFT JOIN语句的顺序,而用户语句的JOIN顺序可能不是最优,导致查询性能较低。
SQL特征语句包含多个LEFT JOIN,多个LEFT JOIN的ON条件均为t1.colX = tn.colX.
LEFT JOIN的右表,一些表可以直接与左表形成Hash JOIN关系,一些表可能会导致左表发生膨胀。
让形成Hash JOIN关系的LEFT JOIN先执行,避免拉表。例如SQL特征中描述的语句,因为left join x4 on x1.hash_col = x4.hash_col是Hash分布式JOIN,因此可以提到最前面,直接分布式执行。让膨胀率小的LEFT JOIN先执行,减小拉表数据量。如果参与JOIN条件的列的值的重复度较高,则很可能会造成LEFT JOIN结果发生膨胀。一般来说,使用主键列参与的JOIN条件,膨胀率是最小的;而重复值越多的列,膨胀率就越可能高。
评论
登录后才可以发表评论
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526