GBASE 8A v953报错集锦35-- group by 常量执行耗时长

当使用Tableau工具且未指定GROUP BY字段时,会生成临时的GROUP BY1.10000000000000001,导致不必要的性能损耗。解决方案是通过设置_t_gcluster_optimizer_group_const参数来控制是否对常量GROUP BY进行Hash重分布。参数值为0表示关闭优化,会进行Hash重分布;值为1表示开启优化,常量不会被重分布。注意SQL语句中常量列需带引号,GROUP BY中的1表示按投影列第一元素重分布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题现象

使用 tableau 工具拉取字段,在没有 group by 字段时,捕捉 tableau 下发给 8a MPP

的 sql 发现,在不指定 group by 的情况下会生成 group by 1.10000000000000001,sql

会根据生成的临时字段增加一步执行操作,浪费大量时间。

解决方法:

group by 只存在 const 类型的元素,hash redistribute 会对 const 进行 Hash 数

据重分布,导致全部将数据分布到相同的节点上,严重影响性能。

需要设置常量 group by 的优化参数 _t_gcluster_optimizer_group_const 来控

制此功能状态,可以通过 explain 执行计划查看执行情况。

0:表示优化功能关闭(默认值),会对 group by 的 const 进行 hash 重分布

1:表示功能开启,不对常量进行重分布

注:

select count(1) from t1 group by 'a'; 常量列要带上单引号

select a from t1 group by 1; group by 中的 1 表示按投影列的第一个元素

a)进行重分布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值