返回首页

gbase数据、南大通用产品文档:GBase8c负载管理

更新日期:2024年09月11日

未对数据库资源做控制时,
容易出现并发任务抢占资源导致操作系统过载甚至最终崩溃。
操作系统过载时,其响应用户任务的速度会变慢甚至无响应;操作系统崩溃时,整个系统将
无法对用户提供任何服务。GBase 8c 的负载管理功能能够基于可用资源的多少均衡数据库
的负载,以避免数据库系统过载。

本节描述如何查询对集合类型定义的列。集合类型是一种复杂 数据类型。其中每个集合值
包含具有相同数据类型的一组元素。有关集合数据类型的详细描述,请参阅《GBase 8s 数
据库设计和实现指南》

有关如何访问集合包含的个别元素的信息,
请参阅处理 SELECT 语
句中的集合。
下图显示 manager 表,
在本节的示例中使用了该表。
manager 表同时包含简单集合类型和嵌
套集合类型。简单集合是一种集合类型。它不包含本身就是集合类型的任何字
段。 manager 表的 direct_reports 列就是一个简单集合。嵌套集合是包含另一集合类型的集
合类型。manager 表的projects 列就是一个嵌套集合。
图: manager 表
CREATE TABLE manager
(
mgr_name VARCHAR(30),
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 表的每一行返回 department 列中的数据和 direct_reports 列中的所有
元素的查询。
图: 查询
SELECT department, direct_reports FROM manager
图: 查询结果
department marketing
direct_reports SET {Smith, Waters, Adams, Davis, Kurasawa}

department engineering
ddirect_reports SET {Joshi, Davis, Smith, Waters, Fosmire, Evans,
Jones}

department publications
direct_reports SET {Walker, Fremont, Porat, Johnson}


GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 77 -

department accounting
direct_reports SET {Baker, Freeman, Jacobs}

对集合类型查询的输出总是包括类型构造函数,它指定集合是 SET 、MULTISET 或
LIST 。例如:在此结果中,SET 构造函数位于每个集合的元素前面。花括号({})划分
集合的元素;逗号隔开集合的个别元素。

使用 CREATE TRIGGER 语句定义新触发器。CREATE TRIGGER 语句是数据定义语句,
它将称为触发操作的 SQL 语句与表上的诱发事件相关联。当发生诱发操作时,它触发存
储在数据库中的关联 SQL 语句。

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 338 -
在本示例中,触发事件是引用 items 表中的 quantity 列的 UPDATE 语句。下图说明激活触
发器的 DML 操作(称为触发器事件)与触发操作之间的关系。
图: 触发事件和触发操作


CREATE TRIGGER 语句由执行下列操作的子句组成:

声明触发器名称。

指定在指定表或试图上作为触发事件的 DML 操作。

定义该事件触发器的 SQL 操作。
FOR EACH ROW 触发操作中讨论了称为 REFERENCING 子句的可选子句。
要创建触发器,使用 DB-Access 或某个 SQL API。本节描述当您在 DB-Access 中使用交互
查询语言选项输入 CREATE TRIGGER 语句时的用法。在 SQL API 中,您在语句前加上
将该语句标识为嵌入式语句的符号或关键字。