返回首页

gbase数据、南大通用产品文档:GBase8sDELETE 和 UPDATE 语句中的子查询

更新日期:2024年09月11日

除了在 SELECT 的 WHERE 子句中的子查询,还可以在其它数据操纵语言(DML)语句
中使用子查询,包括 DELETE 和 UPDATE 的 WHERE 子句。
适用某些限制。如果子查询的 FROM 子句返回多行,并且该子句指定与其它 DML 语句
正在修改相同的表或视图,那么处于下列情况下的 DML 语句会成功。

DML 语句不能是 INSERT 语句。

子查询中的 SPL 例程没有引用正在被修改的表。

子查询不包括相关列名。

该子查询使用 DELETE 和 UPDATE 的 WHERE 子句中的子查询语法的条件指
定。
如果这些条件中的任何条件都不符合,那么 DML 操作发生错误 -360。
以下示例修改 stock 表,通过增加价格子集的 10 % 来增加 unit_price 值。WHERE 子句通
过将 IN 运算符应用到从 stock 表查找到 unit_price 值少于 75 而返回的行来增加价格。
UPDATE stock SET unit_price = unit_price * 1.1
WHERE unit_price IN
(SELECT unit_price FROM stock WHERE unit_price < 75);


GBase 8a MPP Cluster 资源管理功能可以对SELECT 和DML 等受控SQL 在运
行过程中使用的CPU、内存、I/O 和磁盘空间等资源进行合理管控,以达到资
源合理利用,系统稳定性运行的要求。其中:
1.
CPU:
实现对受控SQL 使用CPU 优先级和百分比控制,
以及SQL 并发数
及并行度的管理。
2.
内存:实现对受控SQL 使用的算子buffer(large heap)内存使用上限的控
制。
3.
I/O:实现对受控SQL 使用的direct I/O 磁盘读写速率上限的控制。
4.
磁盘空间:实现对表数据文件占用磁盘空间大小的管控。
注意
磁盘空间管控仅对数据文件占用磁盘空间大小进行管控,
索引文件不在管控
范围内。

每个VC 之间的资源管理功能相互独立,VC 内部的资源池定义、消费组规划、
资源计划状态(启动/关闭)以及消费组与资源池之间的关联关系都各不相同,
需要不同VC 的使用者根据自身需要来进行配置。

GBase 8a MPP Cluster 适用于包含相对独立的业务领域或不同分析类型的大数据平
台、综合性BI 系统、数据仓库和集市系统,不同的应用场景运行在独立的逻辑子
集群中,对各逻辑子集群统一管理,既解决多物理集群管理、监控、维护的高成本
问题,又能满足不同业务场景的差异化特性,实现资源的最大化利用,增强了集群
的扩展能力,维护能力。