返回首页

gbase数据、南大通用产品文档:GBase8a

更新日期:2024年09月11日

gbase_fetch_field_direct
.....................
14

隐式表代表子查询的表,如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;

问题现象
rpad、lpad 函数使用限制。
处理方法
语法:
RPAD(str,len,padstr)
LPAD(str,len,padstr)
用法:
用字符串padstr 对str 进行右/左边填补,直至它的长度达到[len]个字符长度,然
后返回补空格后的字符串str。
说明

目前第二个传入参数[len]只支持小于等于21845 的正整数和length()函数,如以下计
算方式:
select rpad(substr('天津南大通用',0,2),6 ,'*') from test.tmp_0221_wxt_3 a;
select rpad(substr('天津南大通用',0,2),8-2 ,'*') from test.tmp_0221_wxt_3 a;

GBase 8a MPP Cluster 最佳实践
5 FAQ
文档版本(2022-02-11)
南大通用数据技术股份有限公司
121
select rpad(substr(' 天津南大通用',0,2),length(' 天津南大通用') ,'*') from
test.tmp_0221_wxt_3 a;

第二个传入参数[len]不支持length()以外的其他函数以及length()函数的计算,如以
下方式不支持:
select rpad(substr('天津南大通用',0,2),length(' 天津南大通用') - 1 ,'*') from
test.tmp_0221_wxt_3 a;
select rpad(substr('天津南大通用',0,2),char_length('天津南大通用') ,'*') from
test.tmp_0221_wxt_3 a;