返回首页

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

更新日期:2024年09月11日

GBA-01BR-0104
错误码
错误标识
错误显示信息
GBA-01BR-0104

%s is an empty file
错误出现原因
全文索引.fti.path 文件内容为空
分析与建议
检查全文索引文件的正确性,
.fti.path 文件不存在,
如果存在,则必须内容正确

 摘要:
返回描述了所使用连接类型的字符串,包括服务器主机名。
 语法:
const char *gbase_get_host_info(GBASE *gbase);
 参数:
 返回值:
代表服务器主机名和连接类型的字符串。

BETWEEN_JOIN:指连接条件类似于“t1.A BETWEEN t2.B AND t2.C”的JOIN,
包括“t1.A > t2.B AND t1.A < t2.C”这样的写法,简记为“A BETWEEN B AND C”。
如下以t1.A BETWEEN t2.B AND t2.C 进行说明。
1.
优化原理:
将(B,C)理解为一条条线段,
“A BETWEEN B AND C”即为找出与A 相交的所
有线段。
图5- 9 “A BETWEEN B AND C”的处理逻辑如下图所示
可以先将(B[key], C)排序,如上图所示,然后扫描t1 表,对于任意value A,
用二分法找到对应的位置pos,
pos 满足“B(pos) <= A < B(pos + 1)”,
如上图中
为2,对于该pos 及前面的所有数据,再进行“A between B and C”的check,
即需要check(0,1,2)。
为了提升check 的性能,在sort buffer 中加入index,如下图所示,
index 为指
向与当前区间有重叠的上一个区间的位置(图中向上的箭头)。找到对应的
位置pos 后,只需check 由index 组成的list 即可。例如图中的情况,对应的
A 只需check(2,0)即可。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1331
图5- 10
Index 示意图如下:
2.
优化特性:
利用智能索引进行过滤的过程如下图所示,
如果阴影所示部分与(A,B)所构成
的所有区间都无交集时,则可以跳过当前DC,否则不可以跳过。方法为在
扫描A 列时,对当前A 列DC 做如下检查:

找到A_min 对应的位置pos;

如果A_max < B(pos+1),则继续,否则不可跳过当前DC,结束;

沿pos 的index 对A_min 做检查,如果未发现满足A_min between B and
C 的线段,则可以跳过当前DC,否则不可跳过当前DC。
图5- 11
智能索引过滤示意图如下:
当(B,C)所组成的区间段非常稀疏,
同时A 又是有序列时,
A 列的智能索
引将发挥重要作用。
3.
优化限制:
只有在t2 表非常小时(相对于t1 表),使用该优化性能非常好,当t2 表较
大时(如达到t1 表的1/2),性能较差,建议走原来逻辑,关闭该参数。
4.
优化参数:
gbase_optimizer_between_join=0(关闭)/1(开启-默认)/2(开启,并且含等值条件
的连接也优先使用between join)。