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视图展开,减少了一步子查询物化过程

内关联将两视图都展开了,减少了两步子查询物化过程

评论

登录后才可以发表评论
用户头像
levvel发表于 6个月前
来报个到
weifeng发表于 2个月前
谢谢分享