返回首页

gbase数据、南大通用产品文档:GBase8s声明全局变量

更新日期:2024年09月11日

全局变量将它的值存储在内存中,
其他 SPL 例程可用,
由相同的用户会话运行在同一数据
库上。全局变量有下列特征:

它需要缺省值。

可在任何 SPL 例程中使用它,虽然必须在使用它的每一例程中定义它。

它将它的值从一个 SPL 例程带到另一个,直到会话结束为止。
限制: 您不可将集合变量定义为全局变量。
下图展示分享一个全局变量的两个 SPL 函数。
图: 分享一个全局变量的两个 SPL 函数。
CREATE FUNCTION func1() RETURNING INT;
DEFINE GLOBAL gvar INT DEFAULT 2;
LET gvar = gvar + 1;
RETURN gvar;
END FUNCTION;

CREATE FUNCTION func2() RETURNING INT;
DEFINE GLOBAL gvar INT DEFAULT 5;
LET gvar = gvar + 1;
RETURN gvar;
END FUNCTION;
虽然您必须定义带有缺省值的全局变量,但仅在您首次使用它时,将变量设置为缺省值。
如果您以给定的顺序在下图中执行这两个函数,则 gvar的值将为 4。
图: 全局变量缺省值。
EXECUTE FUNCTION func1();
EXECUTE FUNCTION func2();
但是,如果您以相反的顺序执行函数,如下图所示,则 gvar 的值将为 7。

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 283 -
图: 全局变量缺省值。
EXECUTE FUNCTION func2();
EXECUTE FUNCTION func1();
要了解更多信息,请参阅 执行例程。

单击角色对应的“权限管理”链接后,打开该角色的权限管理界面,可以
根据实际需求在“系统功能列表”中为用户勾选相应的统一监控管理权限。
“系统功能列表”中列出了角色可以分配的所有权限,如图:

统一数据平台监控与运维系统用户手册
- 40 -
南大通用数据技术股份有限公司
图3.2-11 权限管理
系统功能列表信息说明:

模块:统一监控所包含的模块名称,主要分为“集群监管”和“平台
管理”两大模块

子模块:统一监控中可操作的模块下的子模块

功能项:统一监控中子模块下的具体的功能项

功能编号:用于区分标识各个功能项

功能描述:功能项的简单描述
勾选完毕后,
需要单击
“保存权限设置”
按钮,
提交信息,
成功后提示
“保
存成功”,完成对角色的权限配置。
配置好权限后,该角色就具备了相应的操作统一监控的权限,当给用户绑

统一数据平台监控与运维系统用户手册
南大通用数据技术股份有限公司
- 41 -
定相应的角色后,该用户就具备了其所属角色的相应权限。
【注】如果要给角色分配“平台管理”权限,则必须在“系统功能列表”
中勾选“平台管理”模块下的“主页链接”子模块,否则在使用绑定该角色的
用户登录统一监控后,将无法进入“平台管理”界面。

使用 AUTOLOCATE 配置参数来启用数据库、索引和表的自动定位,并启用自动表分片。
onconfig.std 和缺省值
AUTOLOCATE 0

0 = 禁用自动定位和分片。
1 - 32 = 启用自动定位和分片。数值表明初始分配给标的轮转法分片的多少。
生效
编辑 onconfig 文件并重启数据库服务器之后。
当您通过运行 onmode -wf 命令在 onconfig 文件中动态地重置内存中的该值时。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 38 -

当您通过运行 onmode -wm 命令动态地重置内存中的该值时。
用法
使用 AUTOLOCATE 配置参数来控制数据库服务器是否控制新数据库、索引和表的定位,是
否控制那些表的分片。如果您设定 AUTOLOCATE 配置参数为一个正整数,则数据库服务器
执行下列任务:
l 将新数据库存储在您未在优化 dbspace 中而是在 root dbspace 中指定的位置。
缺省情况下,
除了那些专用于 tenant 数据库的 dbspace 之外,
所有 dbspace 都
可用。然而,您可控制可用 dbspace 列表。
l 通过轮转法分片新表,分片数目等于 AUTOLOCATE 配置参数的值。
l 随着表增长,添加更多表分片。
如果您设置 AUTOLOCATE 配置参数的值为 0,则缺省地在 root
dbspace 中创建新数据库。
新表和索引创建在数据库所在的同一个 dbspace 中,新表和索引不分片。
自动定位不适用于 tenant 数据库或 tenant 数据库内的表、分片和索引。
通过在 CREATE
DATABASE 语句中以 IN 子句指定一个 dbspace,您可覆盖数据库的自动定
位。
类似地,
通过在 CREATE
TABLE 语句中以 IN 子句指定一个 dbspace 或以 FRAGMENT
BY
子句指定一个分片策略,您可覆盖表的自动定位和分片。
当启用这个配置参数时,您可使用 admin() 或 task() 函数的 autolocate database 参
数来:
l 管理自动定位和分片的 dbspace 列表。可用 dbspace 列表在 sysautolocate 系
统目录表中。
l 对于指定的数据库禁用自动定位和分片。
您可使用 SQL 的 SET ENVIRONMENT 语句的 AUTOLOCATE 环境选项来启用或禁用会话的
AUTOLOCATE 配置参数值。