云数据库 GaussDB-其他优化器选项:rewrite_rule

时间:2023-11-01 16:22:03

rewrite_rule

参数说明:标识开启的可选查询重写规则。有部分查询重写规则是可选的,开启它们并不能总是对查询效率有提升效果。在特定的客户场景中,通过此GUC参数对查询重写规则进行设置,使得查询效率最优。

此参数可以控制查询重写规则的组合,比如有多个重写规则:rule1、rule2、rule3、rule4。可以设置:

set rewrite_rule=rule1;          --启用查询重写规则rule1set rewrite_rule=rule2,rule3;    --启用查询重写规则rule2和rule3set rewrite_rule=none;           --关闭所有可选查询重写规则

该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

取值范围:字符串

  • none:不使用任何可选查询重写规则。
  • lazyagg:使用Lazy Agg查询重写规则(消除子查询中的聚集运算)。
  • magicset:使用Magic Set查询重写规则(从主查询中下推条件到子查询)。
  • uniquecheck:使用Unique Check查询重写规则(提升目标列中无agg的子查询语句,在执行时检查返回行数是否为1行)。
  • intargetlist:使用In Target List查询重写规则(提升目标列中的子查询)。
  • predpushnormal:使用Predicate Push查询重写规则(下推谓词条件到子查询中)。
  • predpushforce:使用Predicate Push查询重写规则(下推谓词条件到子查询中,尽可能的利用索引加速)。
  • predpush:在predpushnormal和predpushforce中根据代价选择最优计划。
  • disable_pullup_expr_sublink:禁止优化器将expr_sublink类型的子连接提升,关于sublink的分类和提升原理详见子查询调优

默认值:magicset

support.huaweicloud.com/centralized-devg-v2-opengauss/devg_03_1373.html