返回首页

gbase数据、南大通用产品文档:GBase8cIO Profile

更新日期:2024年09月11日

IO Profile 指标名称及描述如下表所示。
指标名称
描述
Database requests
Database IO 次数。
Database (MB)
Database IO 数据量。
Database (blocks)
Database IO 数据块。
Redo requests
Redo IO 次数。
Redo (MB)
Redo IO 量。

在某些情况下,如果系统时间有问题,ON-Bar 会失败,并出现以下消息:There are no
storage spaces or logical logs to backup or restore。如果发生此情况,可以执行相应步骤来解
决问题。
时间线使用 UNIX™ 时间作为数据库空间的归档检查点时间和逻辑日志的结束时间。如果
没有自动备份日志并且更改了系统时钟,那么可能会破坏时间线。
例如,如果在归档检查点时间前结束了逻辑日志记录,就会有一个高于归档检查点时间的
时间戳记。数据库空间不需要日志,并且 ON-Bar 将尝试立即恢复备份。如果找不到日
志,那么 ON-Bar 失败,并出现以下消息:There are no storage spaces or logical logs to
backup or restore.
要存储存储空间和逻辑日志:
1.
将时钟改回其原有值。
2.
从备份恢复系统。
3.
将时钟更改成新的时间。

此部分描述如何使用 DB-Access 将集合值插入到列内。它未讨论如何将个别元素插入到集
合列内。要访问或修改集合的个别元素,
请使用 GBase 8s ESQL/C 程序或 SPL 例程。
要获
取关于如何创建 GBase 8s ESQL/C 程序来插入到集合内的信息,请参阅《GBase 8s ESQL/C
程序员手册》。要获取关于如何创建 SPL 例程来插入到集合内的信息,请参阅 创建和使
用 SPL 例程。
本部分提供的这些示例是基于下图中的 manager 表。
manager 表同时包含简单的和嵌套的集
合类型。
图: 创建 manager 表。
CREATE TABLE manager
(
mgr_name VARCHAR(30),

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 170 -
department VARCHAR(12),
direct_reports SET(VARCHAR(30) NOT NULL),
projects LIST(ROW(pro_name VARCHAR(15),
pro_members SET(VARCHAR(20) NOT NULL))
NOT NULL)
);

将值插入到简单的集合和嵌套的集合内
当您将值插入包含集合列的行内时,您插入集合列包含的所有元素的值以及其他列的值。
例如,下列语句将单个行插入到 manager 表内,该表同时包括简单的集合和嵌套的集合列:
INSERT INTO manager(mgr_name, department,
direct_reports, projects)
VALUES
(
'Sayles', 'marketing',
"SET{'Simonian', 'Waters', 'Adams', 'Davis', 'Jones'}",
LIST{
ROW('voyager_project', SET{'Simonian', 'Waters',
'Adams', 'Davis'}),
ROW ('horizon_project', SET{'Freeman', 'Jacobs',
'Walker', 'Smith', 'Cannan'}),
ROW ('saphire_project', SET{'Villers', 'Reeves',
'Doyle', 'Strongin'})
}
);

将 NULL 值插入到包含 row 类型的集合内
要将值插入到 ROW 类型的集合内,您必须为 ROW 类型中的每一字段指定值。
通常,在集合中不允许 NULL 值。然而,如果集合的元素类型为 ROW 类型,则您可将
NULL 值插入到 row 类型的个别字段内。
您还可指定空集合。
空集合是不包含任何元素的集合。
要指定空集合,
请使用大括号
({})

例如,
下列语句将数据插入到 manager 表中的行内,
但指定 direct_reports 和 projects 列为空
集合:
INSERT INTO manager
VALUES ('Sayles', 'marketing', "SET{}",

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 171 -
"LIST{ROW(NULL, SET{})}"
);
集合列不可包含 NULL 元素。由于指定 NULL 值作为集合的元素,因此下列语句返回一
个错误:
INSERT INTO manager
VALUES ('Cole', 'accounting', "SET{NULL}",
"LIST{ROW(NULL, ""SET{NULL}"")}"
下列语法规则适用于对集合类型执行插入和更新:
使用大括号({})来划分每一集合包含的元素。
如果该集合为嵌套的集合,则使用大括号({})来同时划分内部集合和外部集合的元素。