1、关联时小表数据量超过多少时采用hash重分布:
首先打开自动评估参数gcluster_hash_redistribute_join_optimize=2,然后设置gcluster_hash_redist_threshold_row=xxxx。
2、支持with as语法参数
设置_t_gcluster_support_cte=1支持此语法
并设置_t_gcluster_reuse_tmp_table_optimize=2,复用cte结果,提升性能
3、强制走大表关联
set _gbase_one_pass_hash_join=2;
4、强制走大表group
set _gbase_one_pass_hash_group=1
set _gbase_parallel_aggr_mode=3
5、 outer join 的on条件优化(开关控制,缺省关);
开关变量 _gbase_optimizer_outerjoin_condition(单机参数) 取值 0 (关闭优化,默认);1(开启优化)
6、 Union类算子优化(Minus/Intersect)(开关控制,缺省关);
开关参数:_gbase_one_pass_union(单机参数)=0, 关闭(默认);_gbase_one_pass_union=1, 打开;
7、带有aggr(distinct)聚合操作性能优化(开关控制,缺省关);
开关变量 _gbase_optimizer_aggr_distinct (单机参数) 取值 0 (关闭优化,默认);1(分组优化);2(切分优化);3(自动选择)
_t_gcluster_agg_distinct_redist_optimize_with_groupby (集群参数)=0 (关闭优化,默认);1(打开优化)
该参数优化 select aggr(distinct j) from table group by i, 当i 重分布不均匀时,按照j进行hash重分布
8、 hybrid join优化(开关控制,缺省关);
开关参数:_gbase_hybrid_hash_join(单机参数)=0, 关闭(默认);_gbase_hybrid_hash_join=1, 打开(使用Hybrid Hash Join);
9、 having 并行优化(开关控制,缺省关);---tanzhongtao
开关变量 _gbase_optimizer_having (单机参数)取值 0 (关闭优化,默认);1(开启优化)
10、_t_gcluster_user_defined_join_hint,指定表关联顺序参数,0关闭,1开启
使用方法:
gccli -c
select /*+join_path('a,(b,c)')*/ .....;或/*+join_path('b,c,a')*/,两种写法等价,均表示关联顺序为bc先关联。
a/b/c可为表名,也可为表的别名。
11、_t_gcluster_hash_redistribute_groupby_on_multiple_expression=2,group时强制走多列hash重分布;
1为自动评估,0为关闭。
12、_t_gcluster_optimize_chain_condition=1,打开内连接等值参数传递
13、gcluster_delayed_group_by_optimize=1;打开此参数在group列不是hash列时不会在各个节点先做group,而是直接动态hash重分布后再group。
14、_t_gcluster_expr_hash_join_optimize=0;关闭此参数,表达式不走重分布而拉复制表,如CB.ACCT_NO=TO_CHAR(G36.GLDV_36_ACCOUNT_NO)
15、_t_gcluster_multi_corrquery_optimize=1,多个相关子查询走动态hash,0为拉复制表。如多个exists或not exists
16、set gcluster_join_estimate_count_optimize=1之后,评估时不带单表条件。




