隐式表代表子查询的表,如SELECT COUNT(*) FROM (SELECT * FROM t1) tt;,
则tt 即为隐式表。该优化主要是对隐式表中的外部查询没有用到的投影部分不进
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1329
行物化,简单说就是减少无用的物化列从而来提高sql 执行速度。
1.
优化特性:
只对隐式表中未用到的外部投影列不进行物化。
例如下面示例中的b 将不进行物化,示例:
SELECT tt.a FROM (SELECT a,b FROM t1) tt;
优化限制:
内部子查询中存在DISTINCT
内部子查询中存在UNION
内部子查询中存在RANK 类OLAP 函数(包括RANK、DENSE_RANK、
ROW_NUMBER、SUM() OVER()、AVG() OVER()),即使外部没有用到这些
olap 函数,
内部也不会进行优化,
但是不会影响其他非olap 函数字段的优化。
示例:
SELECT a FROM (SELECT RANK()OVER(ORDER BY j) AS rank ,j AS a,k
AS b,i AS c FROM t1) tt;
SELECT a FROM (SELECT RANK()OVER(ORDER BY j) AS rank ,j AS a
FROM t1) tt;