返回首页

gbase数据、南大通用产品文档:GBase8sonmode 和 C 参数:控制 Btree 扫描程序

更新日期:2024年09月11日

(SQL 管理 API)
随同 admin() 或 task() 函数,使用 onmode 和 C 参数来控制 B-tree 扫描程序清除已
删除条目的索引。
语法

元素
描述
关键考虑

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 767 -
元素
描述
关键考虑
alice_mode
系统的 alice 模式。 从 0(OFF)至 12 范围内的有效整数值。
compression_level
对于数据库服务器实
例,
两个部分地已使用
索引页的合并级别。

果那些页上的数据总
数达到设置的级别,

合并页。
级别的有效值为 low、med
(中级)、high 和
default。系统缺省值为 med。
dur_num
热列表有效的秒数。
这个秒数期满后,即使列表上有未处理的条
目,也由下一个可用的 B-tree 扫描程序线
程重建热列表。正在处理请求的扫描程序不
中断。
range_size
在启用索引范围清除
之前索引的大小。
可用大小 -1 来禁用范围扫描。
start_count
要启动的 B-tree 扫
描程序线程数。
如未指定 start_count,则再启动一个线程。
同时最多可启动 32 个线程。但是,同时运
行的扫描程序线程数没有限制。
stop_count
要停止的 B-tree 扫
描程序线程数。
如未指定 stop_count,则停止单个线程。停
止所有索引扫描程序防止所有索引清除。
如果您指定一个比正在运行的线程数更大
的 stop_count 值,
则不发出错误提示,

是停止所有扫描程序线程。
thresh_size
在索引置于热列表上
之前,
索引必须遇到的
删除条目的最小数。
在阈值之上的所有索引都已清除,且没有
B-tree 扫描程序要做的其他工作之后,阈值
之下的索引被添加到热列表。

用法
B-tree 扫描程序有统计信息,追踪索引效率以及索引在服务器上增添了多少额外工作。根
据因为提交的删除索引条目索引已经完成的额外工作量,
B-tree 扫描程序开发一个导致服

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 768 -
务器做额外工作的索引的排序列表,
称为热列表。
首先清除索引导致的额外工作的最高量,
并以递减的顺序清除剩余的索引。DBA 可动态地分配清除线程来配置工作负载。
这个函数等同于 onmode -C 命令。
示例
下列命令启动 60 个 B-tree 扫描程序线程:
EXECUTE FUNCTION admin("onmode","C","start","30");
EXECUTE FUNCTION admin("onmode","C","start","30");
下列命令停止所有这些线程:
EXECUTE FUNCTION admin("onmode","C","stop","30000");
当 stop_count 值大于正在运行的线程数时,不发出错误提示。

gbase_stmt_fetch
.............................
59

GBase 8a 程序员手册C API 篇


IV

南大通用数据技术股份有限公司

问题现象
设置group_concat_max_len 参数后,
直接执行SQL 导致执行报错:
”source table
and destination table are not same”

GBase 8a MPP Cluster 最佳实践
5 FAQ
文档版本(2022-02-11)
南大通用数据技术股份有限公司
103
drop table if exists td_calling_type_code_crm2qyzx2yzhy;
create table td_calling_type_code_crm2qyzx2yzhy(yn_vertical_type
varchar(20),crm_calling_type_name varchar(3000));
insert into td_calling_type_code_crm2qyzx2yzhy values('1',repeat('abcde',500));
set global group_concat_max_len=655360;
SELECT c.crm_calling_type_name_all
FROM td_calling_type_code_crm2qyzx2yzhy b
LEFT JOIN (
SELECT group_concat(crm_calling_type_name) crm_calling_type_name_all
,yn_vertical_type
FROM td_calling_type_code_crm2qyzx2yzhy
GROUP BY yn_vertical_type
,crm_calling_type_name
) c ON b.yn_vertical_type = c.yn_vertical_type;
解决方法:
set global group_concat_max_len 之后不退出直接执行sql,不同gn 层取到的
值不一样,
导致创建临时表表结构不一致。
修改全局配置项后需要退出当前会话,
重连生效。
V9 版本支持该参数的session 级设置,
如果只需要当前会话有效,
可以用session
级别设置该参数:set group_concat_max_len=32767;