返回首页

gbase数据、南大通用产品文档:GBase8sTHREADLIB 环境变量 (UNIX™)

更新日期:2024年09月11日

使用 THREADLIB 环境变量可编译多线程 GBase 8s ESQL/C 应用程序。多线程
GBase 8s ESQL/C 应用程序允许您与一个或多个数据库建立与线程数一样多的连接。当应
用程序执行时,这些连接可以保持活动状态。
THREADLIB 环境变量指示在编译应用程序时使用哪些线程软件包。目前仅支持“分布
式计算环境”(DCE)。

当编译多线程 GBase 8s ESQL/C 应用程序时,将 -thread 选项传递至 GBase 8s
ESQL/C 脚本时会检查 THREADLIB 环境变量。当在编译时使用 -thread 选项的情况
下,如果未设置 THREADLIB 或将 THREADLIB 设置为不受支持的线程软件包,那么
GBase 8s ESQL/C 脚本生成错误。

复制函数过程名称
使用“复制函数过程名称”功能,您可以函数过程的名字。

“数据库导航”
中,
右键单击Schema 节点下的函数过程节点中的函数过
程,选择菜单中的“复制”菜单项,如下图所示:
图5- 592 复制函数过程名称
点击“复制”菜单后“newprocedure”将复制到剪贴板中。

“数据库导航”
中,
右键单击Schema 节点下的函数过程节点中的函数过
程,选择菜单中的“高级复制”菜单项,如下图所示:

GBaseDataStudio 管理工具手册
- 220 -
南大通用数据技术股份有限公司
图5- 593 高级复制
点击“高级复制”菜单后“test:newprocedure”将复制到剪贴板中。

本节解释数据库服务器如何存储于数据库或表的创建相关的数据以及如何分配存储数据所
必需的磁盘结构。
数据库的创建
在 root dbspace 存在之后,用户可以创建数据库。以下各段描述当数据库服务器添加新
的数据库时磁盘上所发生的主要事件。
对系统目录表的磁盘空间分配
数据库服务器搜索 dbspace 中的 chunk 可用列表页,以查找要在其中创建系统目录表的
可用空间。接下来,对于每个系统目录表,数据库服务器分配 8 个连续页,即每个系统目
录表的初始 extent 的大小。这些表是分别创建的,不一定以彼此邻接的方式驻留在
dbspace 中。它们可以位于不同的 chunk 中。当为每张表的初始 extent 找到足够的空间
时,分配这些项,并更新相关联的 chunk 可用列表页。
对系统目录表的跟踪
数据库服务器跟踪在数据库 tblspace (驻留在 root dbspace 中)中新创建的数据库,
描述该数据库的条目添加到 root
dbspace 中的 数据库 tblspace 中。
(请参阅 database
tblspace 的结构。)对于每个系统目录表,数据库服务器向构建数据库的 dbspace 中的
tblspace tblspace 添加一个一页的条目。(请参阅Tblspace Tblspace 的结构。) 图 1
图说明了数据库 tblspace 条目和该数据库的 systables 系统目录表的位置之间的关系。

图: 新数据库

有关如何在创建数据库之后如何列出它们的指示信息,请参阅 GBase
8s 管理员指南 中的
管理数据库日志状态一章中的监视数据库。
表的创建
在 root
dbspace 存在并创建了一个数据库之后,具有必需 SQL 特权的用户可以创建数据
库表。当用户创建表时,数据库服务器以名为 extent 的单位向表分配磁盘空间。(请参

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 275 -
阅 GBase
8s 管理员指南 中的数据存储在哪里一章中什么是 extent )。以下各段描述当
数据库服务器创建表并分配磁盘空间的初始 extent 时所发生的主要事件。
磁盘空间分配
数据库服务器搜索 dbspace 中的 chunk 可用列表页,以查找等于表的初始 extent 大小
的连续可用空间。当找到足够空间时,分配这些页并更新相关联的 chunk 可用列表页。
如果数据库服务器无法在 dbspace 的任何地方找到足够的相邻空间,
那么它向该表分配最
大可用数量的相邻空间。如果分配是可能的,那么即使所分配的空间量小于所请求的量,
也不会返回任何错误信息。如果无法分配最小 extent 大小,那么返回错误。(Extent 不
能跨两个 chunk 。)
tblspace tblspace 中的条目
数据库服务器向此 dbspace 中的 tblspace tblspace 添加一个该表的一页项目。指定给
该表的 tblspace 编号是从描述该表的 tblspace
tblspace 中的逻辑页号派生出来的。请
参阅 tblspace 编号 。
tblspace 编号标识 tblspace 所位于的 dbspace 。
tblspace
extent 可位于任何 dbspace
chunk 中。
如果必须确切知道 tblspace
extent 的位置,请执行 oncheck
-pe 命令,以获得按 chunk
排列的 dbspace 布局列表。
系统目录表中的条目
表本身是在数据库系统目录表中所存储的条目中完全描述的。每张表都指定由表标识或
tabid 。数据库中第一个用户定义的表对象的 tabid 值总是为 100 。( tabid = 100 的
对象也可能是一个视图、
同义词或者一个序列。

有关系统目录的全面讨论,
请参阅 GBase
8s SQL 参考指南 。
表可以位于与包含数据库的 dbspace 不同的 dbspace 中。Tblspace 本身是所分配
extents 的总和,而不是空间的单个连续分配,数据库服务器跟踪 tblspace 而不依赖于
数据库。
临时表的创建
创建临时表所涉及的任务类似于数据库服务器添加新的永久表时所执行的任务。主要区别
在于临时表不接收数据库的系统目录中的条目。有关更多信息,请参阅 GBase 8s 管理员
指南 中的数据存储在哪里一章中的定义临时表一节。