首先,当涉及的数据行数<=参数gbase_parallel_threshold 时,不支持并行。
1.
scan 的数据必须超过一个DC 才能走并行,因为scan 是按DC 进行切分的。
这里需要解释一下,
并不是非得select count(*)超过65536,
而是多于一个DC
即可,如:两个DC,各删除65535 条,select count(*) 的值为2,但是实际
上还是两个DC,因此可以走并行。
2.
分级查询伪列level 不支持并行。
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1337
如:
DROP TABLE IF EXISTS t1;
CREATE TABLE t1(i INT);
INSERT INTO t1 VALUES(0),(1),(2);
SELECT i,level FROM t1 START WITH i = 0 CONNECT BY prior i+1 = i;
SELECT i,level FROM t1 START WITH i = 0 CONNECT BY prior i+1 = i GROUP BY i,level HAVIN
G LEVEl > 0;
3.
某些函数不支持:
1)RAND 函数不带参数或参数为常量不支持并行
SELECT ... FROM t1 WHERE RAND() > 0;
SELECT ... FROM t1 WHERE RAND(100) > 0;
2)REGEXP(参数存在字段不支持,全常量支持)
SELECT ... FROM t1 WHERE a REGEXP b;
3):= 操作(参数存在字段不支持,全常量支持)
SELECT ... FROM t1 WHERE @cnt := i > 0;
4.
用SQL 创建的自定义函数不支持并行,UDF 支持:
如:
CREATE FUNCTION f() RETURNS INT
BEGIN
...
END
这种不支持。
5.
全文索引不支持并行。