GBASE南大通用技术分享:GBase 8a数据库子查询内推优化简介

23 阅读1分钟

南大通用GBase 8a MPP CLuster 在 Express 引擎层内实现了子查询条件内推优化机制,将过滤条件内推,尽早滤除临时表中的无效数据,减少临时表的数据量,从而提高SQL 执行性能。

  1. 优化特性:

可条件内推子查询需满足:

•UNION 子查询,包括 UNION、UNION ALL、INTERSECT、MINUS;

•JOIN 子查询,包括 LEFT JOIN、RIGHT JOIN、OUTER JOIN、INNER JOIN、FULL JOIN;

•单表子查询。

内推条件需满足:

•单表过滤条件可内推,表达式必须为物理列、常量、常量表达式、NULL值;

•通过 AND 逻辑操作符连接的多个符合单表过滤条件的可内推;

•恒真/假条件可内推。

2. 优化限制:

过滤条件约束:

•不支持条件表达式操作符为 IN/NOT IN/BETWEEN AND;

•不支持通过 OR 逻辑操作符连接的内推条件;

•单表过滤条件不支持使用函数,物理表表达式。