云数据库 GAUSSDB-查询改写的Hint:查询改写Hint列表

时间:2024-11-02 18:49:41

查询改写Hint列表

表1 查询改写支持的hint列表

序号

Hint名称

描述

1

EXPAND_SUBLINK_HAVING

允许HAVING子句中的子链接提升。

2

NO_EXPAND_SUBLINK_HAVING

禁止HAVING子句中的子链接提升。

3

EXPAND_SUBLINK

允许对ANY/EXISTS类型子链接进行提升。

4

NO_EXPAND_SUBLINK

禁止对ANY/EXISTS类型子链接进行提升。

5

EXPAND_SUBLINK_TARGET

允许对TargetList中的子链接进行提升。

6

NO_EXPAND_SUBLINK_TARGET

禁止对TargetList中的子链接进行提升。

7

USE_MAGIC_SET

从主查询下推条件到子查询,先针对子查询的关联字段进行分组聚集,再和主查询进行关联,减少相关子链接的重复扫描,提升查询效率。

8

NO_USE_MAGIC_SET

禁止从主查询下推条件到子查询,将带有聚集算子的子查询提前和主查询进行关联。

9

EXPAND_SUBLINK_UNIQUE_CHECK

允许对无agg的子链接进行提升,子链接提升需要保证对于每个条件只有一行输出。

10

NO_EXPAND_SUBLINK_UNIQUE_CHECK

禁止对无agg的子链接进行提升。

11

NO_SUBLINK_DISABLE_REPLICATED

允许带有复制表的fast query shipping或者Stream场景的表达式子链接提升。

12

SUBLINK_DISABLE_REPLICATED

禁止带有复制表的fast query shipping或者Stream场景的表达式子链接提升。

13

NO_SUBLINK_DISABLE_EXPR

允许对表达式类型的子链接进行提升。

14

SUBLINK_DISABLE_EXPR

禁止对表达式类型的子链接进行提升。

15

ENABLE_SUBLINK_ENHANCED

允许子链接提升增强,支持对OR表达式等相关或非相关子链接提升。

16

NO_ENABLE_SUBLINK_ENHANCED

禁用子链接提升增强,禁止对OR表达式等相关或非相关子链接提升。

17

PARTIAL_PUSH

Stream场景支持对listagg和arrayagg添加gather算子。

18

NO_PARTIAL_PUSH

Stream场景禁止对listagg和arrayagg添加gather算子。

19

REDUCE_ORDER_BY

消减冗余的ORDER BY,外层查询对内层查询结果无排序要求时,可以减少不必要的ORDER BY提升查询效率。

20

NO_REDUCE_ORDER_BY

禁止消减不必要的ORDER BY。

21

REMOVE_NOT_NULL

消减不必要的NOT NULL条件,当列属性为NOT NULL时,可以消减查询条件中的IS NOT NULL判断。

22

NO_REMOVE_NOT_NULL

禁止消减IS NOT NULL条件判断。

23

LAZY_AGG

子查询与外层查询存在同样的GROUP BY条件,两层聚集运算可能导致查询效率低下,消除子查询中的聚集运算,以此提高查询效率。

24

NO_LAZY_AGG

禁用消除子查询中的聚集运算规则。

25

EXPAND_SUBQUERY

子查询提升,将子查询提升与上层做JOIN连接,优化查询效率。

26

NO_EXPAND_SUBQUERY

禁用子查询提升。

27

PUSHDOWN_HAVING

下推HAVING条件表达式。

28

NO_PUSHDOWN_HAVING

禁止下推HAVING表达式。

29

INLIST_TO_JOIN

控制使用inlist-to-join对SQL进行改写。

30

NO_INLIST_TO_JOIN

控制禁止使用inlist-to-join对SQL进行改写。

31

ROWNUM_PUSHDOWN

允许行号下推。

32

NO_ROWNUM_PUSHDOWN

禁止行号下推。

33

WINDOWAGG_PUSHDOWN

允许父查询中窗口函数的过滤条件下推到子查询。

34

NO_WINDOWAGG_PUSHDOWN

禁止父查询中窗口函数的过滤条件下推到子查询。

support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0293.html