GBase 8a
性能调优
文章
视图展开优化
发表于2024-09-03 10:25:2957次浏览2个评论
SQL样例:select … from db.view1(单表视图) left join db.view2(单表视图) on …
分析过程:类似SQL中使用视图的SQL,视图都为单表查询,执行计划如下图所示,每个视图都当作了子查询(SubQuery..),这样的话,每个视图需要先进行子查询物化,再做关联计算,多出两个物化过程,如果视图所查的表数据量很大,会导致性能下降严重


优化方法:调整参数_t_gcluster_fold_tree_optimize_new,默认值为0,调整为1,执行计划如下图所示,左关联可以将左表视图展开,内关联可以将两个视图都展开,减少子查询物化过程,性能得到提升,本案例左关联性能由28s提升至19s,内关联由35s 提升至8s。

左关联将a视图展开,减少了一步子查询物化过程

内关联将两视图都展开了,减少了两步子查询物化过程
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25052
- 42023-09-25浏览数:18521
- 52020-05-11浏览数:17526