返回首页

gbase数据、南大通用产品文档:GBase8sSELECT 语句的输出

更新日期:2024年09月11日

虽然在所有GBase 8s 产品中语法相同,但是结果输出的格式和显示取决于应用程序。本章
和编写高级 SELECT 语句中的示例如同您在 DB-Access 中使用“交互式查询语言”选项
时那样显示 SELECT 语句及输出。
大对象数据类型的输出
当发出包含大对象的 SELECT 语句时,DB-Access 按如下所示显示结果:

对于 TEXT 列或 CLOB 列,显示列的内容。

对于 BYTE 列,显示词 而不是实际值。

对于 BLOB 列,显示词 而不是实际值。

用户定义的数据类型的输出
DB-Access 使用特殊约定来显示包含复杂或不透明数据类型的列的输出。有关这些数据类
型的更多信息,请参阅《GBase 8s 数据库设计和实现指南》。

非缺省代码集的输出
可以发出查询 NCHAR 列而不是 CHAR 列,
或者 NVARCHAR 列而不是 VARCHAR 列
的 SELECT 语句。

在线扩容过程中使用swap 导致业务性能下降
问题现象
做8611 在线扩容时,
后台作业并发较高时,
集群节点出现使用swap 现象,
导致SQL
执行性能下降。
原因分析
在后台进行日常业务作业情况下进行在线扩容,后台本身业务压力就比较大,加上
在线扩容,总业务量超出了系统承受范围。
解决方法
当日现场调低并发压力,并将复制表改为分布表,重新进行在线扩容未见swap 问
题出现。
建议在线扩容控制后台业务压力,
否则与扩容业务争抢资源严重,
哪一个都跑不快。

代码中添加了一个控制参数:
_gbase_rep_pending_memory_size
此参数代表接收端接收缓存的上限,以MB 为单位,这个值设得越大,则接收
端的压力越大,反之则发送端的压力越大,因此需要找到一个中间值,使发送
端和接收端的压力比较均衡,才能使效率更高。当前经验值是设为物理内存的
10%。

参数_gbase_rep_receive_buffer_size 只有通过修改node 层的配置文件才可生效,
set 和set global 会报错,如下:
Variable '_gbase_rep_receive_buffer_size' is a read only variable
_gbase_rep_receive_buffer_size 默认设置为20G , 最小可设置为5G, 无上限,
默认单位为MB。
查看_gbase_rep_receive_buffer_size 参数是否能控制内存占用情况,执行如下
命令:
gncli -uroot -e "show engine express status \G;" |egrep -i "total|reptask|applic
ation"
每隔2s 记录一次, 查看total weight 大小,Total weight 单位为字节。
优化了节点间数据传输的负载均衡的控制,能更好地避免出现使用SWAP 的问题,
但是压力过大的情况下此问题还是会出现,因此还需要通过调整集群下发SQL 的
并发数来彻底避免此问题。

GBase 8a MPP Cluster 最佳实践
5 FAQ
文档版本(2022-02-11)
南大通用数据技术股份有限公司
157

1. 以 root 用户进入路径 /opt/gbase8s_clienttool/ClientTools/Studio,
双击 GBaseStudio
2. 在左侧“GBase 服务器”节点右键,选择“新建”--“服务器”,弹出新建
服务器注册界面
3. 填写要访问实例的名称、数据库、实例名、用户名、密码等信息后,点击测
试按钮
4. 如测试成功,则保存连接信息;如测试失败,检查填写信息是否有误
5. 双击已保存的连接,再次输入连接信息,即可连接到实例