返回首页

gbase数据、南大通用产品文档:GBase8s高效的查询优化策略

更新日期:2024年09月11日

GBase 8s 采用了以有效利用索引为基础的基于代价的查询优化策略。查询
子系统通过将输入的查询语句进行复杂的转换,形成不同的查询计划,然后基
于系统的I/O、
CPU 和内存等资源的情况估算各种查询计划的执行代价并最终确
定一个最优计划执行。

不在 WHERE 子句中编写子查询,您可使用 MERGE 语句将来自源表和目标表的行连接
在一起,然后从目标删除与连接条件相匹配的那些行。(Delete MERGE 中的源表还可为
一个集合派生的表,它的行是查询的结果,该查询连接其他的表和视图,但是在下列的示
例中,源是单个表。)
如在前面的示例中那样,
假设您发现 stock 表的某些行包含不正确的制造商代码。
您想要删
除它们以便重新输入它们,而不是更新它们。您可使用 MERGE 语句,指定 stock 作为目
标表,manufact 作为源表,ON 子句中的连接条件,并对于带有不正确的制造商代码
的 stock 行使用 Delete 子句,如下例所示:
MERGE INTO stock USING manufact
ON stock.manu_code != manufact.manu_code
WHEN MATCHED THEN DELETE;
在此示例中,会从 stock 表中删除那些满足 ON 子句中的连接条件的所有行。在此,对于
其中的 manu_code 列值不等于 manufact 中的任何manu_code 值的 stock 的那些行,连接条
件中的不等谓词(stock.manu_code != manufact.manu_code)求值为真。
在 USING 子句中必须罗列正连接到目标表的源表。
MERGE 语句还可更新目标表的行,
或将数据从源表插入到目标表,
根据该行是否满足 ON
子句为连接目标表与源表而指定的条件。单个 MERGE 语句还可同时组合 DELETE 与
INSERT 操作,或者可同时组合 UPDATE 与 INSERT 操作而不删除任何行。MERGE 语
句不更改源表。要获取关于 Delete 合并、Insert 合并和 Update 合并的语法与限制的更多
信息,请参阅《GBase 8s SQL 指南:语法》 中 MERGE 语句的描述。

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

集群接口驱动提供负载均衡
集群接口驱动可以有效实现对上层应用请求的负载进行均衡。
应用层发送请求给相
应节点,节点完成SQL 解析并生成执行计划,协调集群相关节点并发参与计算和
处理,提高了整个集群的并发度,充分发挥了集群性能。
多租户资源管理
GBase 8a MPP Cluster 可以通过虚拟集群技术实现租户间的物理或者逻辑资源的
隔离。

GBase 8a MPP Cluster 下每个节点内的资源管理
GBase 8a MPP Cluster 下每个节点可以对自身内部的CPU、内存、磁盘空间
和I/O 资源进行配置和管理,
其中CPU 可以实现对受控SQL 使用CPU 优先级
和百分比控制,以及SQL 并发数及并行度的管理;内存可以实现对受控SQL
算子buffer 使用上限的控制;I/O 可以实现对受控SQL 磁盘读写速率上限的控
制;以及对磁盘空间使用的管控。

GBase 8a MPP Cluster 虚拟集群的整体资源管控
在虚拟集群内,
通过资源管理和资源组实现了不同应用和用户的资源配额及查
询优先级的灵活配置,同时在完善的权限授权管理机制下,使得不同的应用和
任务可以同时运行在一个集群中,又相互隔离。
在线扩容
GBase 8a MPP Cluster 支持集群数据节点的在线扩容和在线缩容,执行效率更高,
对业务的影响更小。GBase 8a MPP Cluster 能够通过增加data 节点,对系统的计
算和存储能力进行扩容,并且可以灵活的对扩展过程中的状态进行管理与控制,支
持暂停、恢复、取消等等;系统支持在线扩容,扩容后性能近似线性提升,无需中
断当前系统的运行,且支持一次扩展多个节点;可支持实例级、库级和表级等多级
别的扩展方式。
GBase 8a MPP Cluster 具备在线扩容能力:

在线动态扩展集群节点;

在线动态扩展数据节点;

执行调度节点和数据计算节点可以按需独立扩展。

GBase 8a MPP Cluster 产品手册
2 产品概述
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
31