返回首页

gbase数据、南大通用产品文档:GBase8sonmode 和 a 参数:

更新日期:2024年09月11日

添加共享内存段
(SQL 管
理 API)
随同 admin() 或 task() 函数,使用 onmode 和 a 参数来添加共享内存段。
语法

元素
描述
关键考虑
memory_size
新的虚拟共享内存段的大
小,以 KB 为单位。
size 的值必须是正整数,不超过操作系统对共
享内存段大小的限制。

用法
因为数据库服务器自动地添加所需要的段,所以您不需要添加段到共享内存的虚拟部分。
然而,随着添加段,在得到需要的内存之前,数据库服务器可能达到操作系统对段的最大
数目限制。当 SHMADD 配置参数设置较小以至于数据库服务器在得到某操作需要的内存之
前就用尽了可用段的数目时,通常发生这种情况。
您可使用这个函数来添加段,这个段比 SHMADD 配置参数指定的大小更大。通过使用这个
参数来添加段,您可遵守操作系统对段的限制,同时满足数据库服务器对更多内存的需要。

这个函数等同于 onmode -a 命令。
示例
下列示例添加 500 KB 虚拟共享内存:
EXECUTE FUNCTION task("onmode","a","500");

使用 IF 语句在 SPL 例程中创建逻辑分支。
语法

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 1219

用法
数据库服务器按下列步骤处理 IF 语句:
1. 如果 IF 关键字之后的条件为真,则执行 IF 语句的第一个 THEN 关键
字之后的任何语句,并且 IF 语句终止。
2. 如果初始 IF 语句条件的结果为假,当存在 ELIF 子句,则数据库服务器
将计算 ELIF 关键字之后的条件。
3. 如果 ELIF 条件的结果为真,则执行 ELIF 语句的 THEN 关键字后的任
何语句,并且 IF 语句终止。
4. 如果第一个 ELIF 子句中的条件的结果也为假,则数据库服务器会计算下
一个 ELIF 子句的条件,如果它为真,则继续执行上一个步骤。如果为
假,数据库服务器将计算连续 ELIF 子句中的条件,直到找到一个条件为
真,在这种情况下,它会执行该 ELIF 子句中的 THEN 关键字后面的语
句列表,然后 IF 语句终止。
5. 如果 IF 语句中没有条件为真,但存在 ELSE 子句,则执行 ELSE 关键
字之后的语句,并且 IF 语句终止。
6. 如果 IF 语句中的条件都不为真,且不存在 ELSE 子句,则 IF 语句终
止,而不执行任何语句列表。
ELIF 子句
使用 ELIF 子句指定一个或多个附加条件以计算值。如果 IF 条件为假,则计算
ELIF 条件的值。如果 ELIF 条件为真,则执行 ELIF 子句中跟随 THEN 关键字
之后的子句。
如果当 ELIF 条件为真时 ELIF 子句的 THEN 关键字之后没有语句,则程序将
控制从 IF 语句传递给下一条语句。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 1220
ELSE 子句
如果没有为真的上一级统计存在于 IF 子句或任何 ELIF 子句,则执行 ELSE 子
句。
在以下示例中,SPL 函数使用具有 ELIF 子句和 ELSE 子句的 IF 语句。IF 语
句比较两个字符串。
函数显示 1 来指示第一个字符串按字母顺序出现在第二个字符串前面,或则当前
第一个字符串按字母顺序出现在第二个字符串后面时,则显示 -1 。如果字符串
都相同,则返回量(0)。
CREATE FUNCTION str_compare (str1 CHAR(20), str2 CHAR(20))
RETURNING INT;
DEFINE result INT;
IF str1 > str2 THEN LET result =1;
ELIF str2 > str1 THEN LET result = -1;
ELSE LET result = 0;
END IF
RETURN result;
END FUNCTION -- str_compare
IF 语句中的条件
如同在 WHILE 语句中,如果 condition 中的任何表达式求值为 NULL,则条
件不能为真,除非您正在使用 IS NULL 运算符对 NULL 显式地进行测试。以下
规则总结了条件中的 NULL 值:
1. 如果表达式 x 求值为 NULL,则按照定义,x 不为真。而且,NOT (x)
也不为真。
2. IS NULL 是可使 x 恢复为真的唯一运算符。即 x IS NULL 为真,x IS
NOT NULL 不为真。
如果条件中的表达式含有来自未初始化的 SPL 变量的 UNKNOWN 值,则语句
终止并出现异常。
可以仅在触发器例程中的 IF 语句中将触发器类型 Boolean 运算符
(DELETING 、INSERTING 、SELECTING 或 UPDATING)作为条件。
IF 语句列表

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 1221
IF 语句列表

IF 语句列表中允许的 SPL 语句的子集
您可以在 IF 语句列表中使用以下任何 SPL 语句:

<

数据库事务一致性通过逻辑时钟保证,与操作系统时间无关。但是系统时间不一致,会
导致诸多潜在问题,主要是后台运维和监控功能异常。
因此在月度检查时,建议检查各个节
点的时间一致性。
操作步骤
步骤1 以管理员用户gbase,登录数据库主节点。
步骤2 创建记录GBase 8c 各节点的配置文件。
用户可随意指定mpphosts 文件所在目录,
建议放在/tmp 下)。
vim /tmp/mpphosts
打开配置文件,按键“i”进入编辑模式,增加各节点的主机名称。