返回首页

gbase数据、南大通用产品文档:GBase8sSQL_LOGICAL_CHAR 配置参数

更新日期:2024年09月11日

使用 SQL_LOGICAL_CHAR 配置参数来启用或禁用在内建的字符数据类型声明中大小规格的
扩展。
onconfig.std 值
SQL_LOGICAL_CHAR OFF( = 以字节为单位解释大小规格)

OFF = 声明的大小无扩展。
1 = 声明的大小无扩展。
2 = 使用 2 作为声明的大小的扩展因子。
3 = 使用 3 作为声明的大小的扩展因子。
4 = 使用 4 作为声明的大小的扩展因子。
ON
= 使用 M 作为扩展因子,此处 M 是在当前数据库代码集中任何逻辑字符需要的以字节
记的最大长度。依赖于 DB_LOCALE 设置, M 有一个从 1(单字节语言环境中)直至 4 的
整数范围。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 152 -
生效
编辑 onconfig 文件并重启数据库服务器之后。
当您通过运行 onmode -wf 命令在 onconfig 文件中动态地重置该值时。
当您通过运行 onmode -wm 命令重置内存中的该值时。
用法
对于在单语言环境中开发但是在多语言环境中部署的应用,这个特性可降低在数据条目操
作期间截断多字节逻辑字符的风险。
在诸如 UTF-8 这样的单字节代码集中,或一些东亚语言的多字节代码集中,单个逻辑字符
可要求多于一个字节的存储。
设置这个参数可以指导 SQL 分析器将逻辑字符语义应用到这
些内建的字符数据类型的声明:
 CHAR
 CHARACTER
 CHARACTER VARYING
 LVARCHAR
 NCHAR
 NVARCHAR
 VARCHAR
 DISTINCT 类型,声明任意这些数据类型作为基本类型
 ROW 类型(命名的和未命名的),包括这些数据类型的域
 集合类型(LIST、MULTISET 或 SET),包括这些类型作为元素。
您为这个参数指定的设置必须是下列值之一:
SQL_LOGICAL_CHAR 配置参数是否设置为启用或禁用声明的存储大小的扩展,
对于 GBase
8s
实例的所有会话,其设置指定数据类型声明如何解释。
扩展因子的自动调整大小
当 SQL_LOGICAL_CHAR 设置为有效的数字,且当前会话创建数据库时, GBase 8s 比较
SQL_LOGICAL_CHAR 值与任何逻辑字符将用于数据库的代码集的最大字节数。
如果 SQL_LOGICAL_CHAR 设置大于最大字节数,则数据库使用语言环境的最大值作为新的
扩展因子,取代配置文件指定的因子。在配置文件中的 SQL_LOGICAL_CHAR 设置保持不变,
继续作为其他用户数据库的缺省扩展因子发挥作用。
类似地,如果会话的 SQL_LOGICAL_CHAR 值自动地重置为一个数字,如上所述,但同一会
话随后连接到另一个数据库,其语言环境使用一个代码集,在该代码集中逻辑字符要求比
当前扩展因子更大的存储大小, 则在用户会话连接到那个数据库时, GBase
8s 使用新代
码集的最大字节数作为新的扩展因子,而不使用 SQL_LOGICAL_CHAR 的当前设置。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 153 -
扩展因子的自动重置以匹配代码集中最大的逻辑字符大小,
在连接时 DB_LOCALE 指定该代
码集,当 SQL_LOGICAL_CHAR 设置为 ON 时也会发生,但是, 当 SQL_LOGICAL_CHAR 以两
种方式设置为数字(1、2、3 或 4)时,ON 的影响与对数据库服务器行为的影响不相同:

 如果 SQL_LOGICAL_CHAR 设置为 ON,则扩展因子可自动地重置为较小的值。
 SQL_LOGICAL_CHAR = 4 与 SQL_LOGICAL_CHAR = ON 之间没有不同。
如果当前会话连接到一个数据库时,
该数据库在 DB_LOCALE 代码集中的最大逻辑字符要求
一个比当前 SQL_LOGICAL_CHAR 设置更小的字节数,则必须设置 SQL_LOGICAL_CHAR 为
ON,而不是一个数字。有效的扩展因子将总是小于或等于语言环境的最大字符大小。

GBA-02DU-0005
错误码
错误标识
错误信息
GBA-02DU-000
5

Query is stopped by user
错误出现原因
用户终止操作
分析与建议
用户终止了此次操作,或者由于网络中断导致终止此次操作。

操作系统配置
1.安装操作系统。
2.修改操作系统内核PAGESIZE 为64KB。
3.关闭CPU 中断的服务irqbalance。
irqbalance 负责均衡CPU 中断,
避免单CPU 处理中
断负载过重。
以root 用户登录操作系统,执行如下命令。
service irqbalance stop
# 关闭Irq balance。
echo 0 > /proc/sys/kernel/numa_balancing
echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled
echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag
echo none > /sys/block/nvme*n*/queue/scheduler
# 针对nvme 磁盘io 队列调度机制设置。