返回首页

gbase数据、南大通用产品文档:GBase8agbase_buffer_hj

更新日期:2024年09月11日

功能
这个参数用于设置数据库做HASH JOIN 时使用的BUFFER 大小。
如果用户的SQL 操作经常出现HASH JOIN 操作,
则可以适当将该参数调大一些。
通常该内存从LARGE BUFFER 中申请,因此该值应小于gbase_heap_large 的大
小。
系统会根据gbase_heap_data 的大小,自动计算gbase_buffer_hj 的最小值。如果用
户的设置值小于程序计算的最小值,则会忽略该参数的设置值。
该参数的默认值是由系统自动评估计算出来的,不是固定的值。

当指定如下hint 函数时,from 子查询的结果先保存到临时表中,再被后续查询使
用。
hint 函数名:grouped
功能:指定结果集重分布方式
取值:[-10|-2|-1|投影列下标列表]
默认值:-10
说明:
-10 表示保持结果集分布属性不变;
-2 表示结果集拉复制表;

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1319
-1 表示结果集RoundRobin 分布;
投影列下标从0 开始,所以投影列下标列表表示为大于等于0 的1 个或多个值,
中间用逗号间隔,
结果集按列标指定的列进行hash 重分布。
如果有下标超出投影
列范围则hint 无效。
select /*+grouped('-10')*/ ...... 子查询结果不进行重分布,按原样存储
select /*+grouped('-2')*/ ...... 子查询结果拉复制表
select /*+grouped('2')*/ ...... 子查询结果按投影列第3 列进行hash 重分布
select /*+grouped('2,3')*/ ...... 子查询结果按投影列第3、4 列进行hash 重分布
注意:
1.from 子查询展开后将不再存在时,如果指定了hint,则不再展开
2.from 子查询被投影列剪枝时,
如果hint 指定了hash 重分布,
则不再进行剪枝优

如:
select * from (select /*+grouped('-2')*/ * from x1) xx, x2 where xx.id2=x2.id4;
如果没有hint,则xx 会先进行hash 重分布,然后与x2 进行join,hint 指定了xx
拉复制表后,计划变成xx 拉复制表,然后与x2 进行join。


GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
40