返回首页

gbase数据、南大通用产品文档:GBase8a复制表优化方案

更新日期:2024年09月11日

当遇到多表关联的时候,
尤其是主表外连接多个右表,
其中关联字段为右表的hash
键的时候,
这时候为防止破坏hash 分布计算,
可根据右表数据量的大小将其创建
为复制表。
举例:
SELECT
..
..
FROM rep.statcmain
a
-- 80989472
hash 列policyno
INNER JOIN rep.statdcompanylevel d
--25887
replicate
ON
a.comcode = d.comcode
LEFT JOIN rep.statdagent
l
--86485
replicate
ON a.agentcode = l.agentcode
LEFT JOIN rep.temp_prpcengagenew
pr
--164205
hash 列policyno
ON a.policyno = prpcengagenew.policyno
LEFT JOIN rep.statdcarmodel
b
--178758 replicate
ON a.modelcode = b.modelcode
LEFT JOIN rep_dev.odsbi_prpmotorcade i
--288949 replicate
ON a.contractno = i.contractno
LEFT JOIN ..
其中,主表rep.statcmain 数据量80989472 ,hash 列policyno ,但外连接表
rep.statdcompanylevel,
rep.statdagent,
rep.statdcarmodel,
rep_dev.odsbi_prpmotorcade
的关联字段为非hash 键,将这些表创建为复制表,可以防止拉表做到一步下发。



sword GCIParamSet(
dvoid *hdlp,
ub4 htyp,
GCIError *errhp,
CONST dvoid *dscp,
ub4 dtyp,
ub4 pos
);

预留

GBA-02DD-0010
错误码
错误标识
错误信息
GBA-02DD-001
0

gcluster table error:

错误出现原因
操作table_distribution 失败时产生的错误信息。
分析与建议
可能是gbase.table_distribution 出现问题,可以通过查询它进行验证。