GBase 8a
性能调优
文章
GBase 8a 性能优化方法分享(6)Inner join过滤条件传递的优化
发表于2024-06-21 09:10:5550次浏览0个评论
现场有类似于示例中的SQL,a表与b表进行内关联,并且a表与c表进行左外关联。a表与b表的关联字段为a.c1与b.c1,并且a.c1有取值范围,所以在生成执行计划时b.c1也应该有相应的取值范围。但是在测试版本中我们发现,因为有left join的加入,过滤条件的传递并没有实现,导致b表整表都参与到运算中,降低了SQL性能。
例:
select a.c1 , b.c2
from a join b
on a.c1 = b.c1
left join c
on a.c2 = c.c2
where a.c1 >= 5
and a.c1 <= 10
优化后的效果就是:
select a.c1 , b.c2
from a join b
on a.c1 = b.c1
left join c
on a.c2 = c.c2
where a.c1 >= 5
and a.c1 <= 10
and b.c1 >= 5
and b.c1<=10
评论
登录后才可以发表评论
热门帖子
- 12025-12-01浏览数:182763
- 22023-05-09浏览数:25057
- 42023-09-25浏览数:18525
- 52020-05-11浏览数:17528