返回首页

gbase数据、南大通用产品文档:GBase8sSQL 通信区域

更新日期:2024年09月11日

数据库服务器始终在一个称为“SQL 通信区域”(SQLCA)的数据结构中返回结果代码,
以及关于操作结果的其他可能信息。如果数据库服务器在用户定义的例程中执行 SQL 语
句,则调用应用程序的 SQLCA 包含在该例程中 SQL 语句触发的值。
在从 表 1 至 表 1 中罗列 SQLCA 的主体字段。在编程语言之中,您用来描述诸如
SQLCA 这样的数据结构的语法,
以及您用来应用其中字段的语法是不同的。
要了解详细信
息,请参阅您的 SQL API 出版物。
特别地,您通过其命名 SQLERRD 和 SQLWARN 数组的一个元素的下标是不同的。在
GBase 8s ESQL/C 中,数组元素从零开始编号,但在其他语言中,从一开始。在本讨论中,
以诸如 third 这样的特定词命名字段,且您必须将这些词翻译成您的编程语言的语法。
您还可使用 GET DIAGNOSTICS 语句的 SQLSTATE 变量来检测、处理和诊断错误。请
参阅 SQLSTATE 值。

释放不用的内存段
(SQL
管理 API)
随同 admin() 或 task() 函数,使用 onmode 和 F 参数来释放不用的内存段。
语法

用法
当您执行这个函数时,内存管理器检测不用的内存的每一内存池。内存管理器立即释放定
位的不用的内存块。内存管理器检查每一内存池之后,它开始检查内存段并释放数据库服
务器不再需要的任何内存段。
当您执行该使用程序时,运行这个命令对任何用户都会导致重大的性能降级。虽然执行时
间短暂(1 至 2 秒),但对单用户数据库服务器的降级可达 100%。有多个 CPU 虚拟处理
器的系统感觉降级会成比例地减轻。
要确认不用的内存已释放,请检查消息日志。如果内存管理器释放一个或多个段,它显示
消息表明释放了多少个段以及多少内存字节。
提示: 请从操作系统日程安排工具有规律地运行这个命令,并在数据库服务器执行任何创
建更多的内存段的函数,包括构建大索引、排序或备份之后,运行这个命令。
这个函数等同于 onmode -F 命令。
示例
下列示例释放不用的内存块:
EXECUTE FUNCTION task("onmode","F");

对象的平均大小(SQL 管理 API)
随同 admin() 或 task() 函数,使用 set sbspace avg_lo_size 参数来指定在指定的 sbspace
中智能大对象的预期平均大小,以便数据库服务器可计算元数据区的大小。
语法

元素
描述
关键考虑
sbspace
sbspace 的名称。

average_size
该 sbspace 中智能大对象的平均大小,
以 KB 为单位。
Windows™:4 至 2**31
UNIX™:2 至 2**31

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

用法
这个函数等同于 onspaces -ch 命令。
示例
下列示例设置名为 sbsp1 的 sbspace 中智能大对象的预期平均大小为 8 KB:
EXECUTE FUNCTION task("set sbspace avg_lo_size","sbsp1","8");