更新时间:2026-10-21 GMT+08:00
分享

基于DSL的规则引擎

enable_dsl_ruleengine

参数说明:标识是否开启基于DSL的规则引擎,如果开启该功能,优化器则会应用DSL规则对SQL进行等价改写。

参数类型:布尔型

参数单位:无

取值范围:

  • on:表示开启。
  • off:表示关闭。

默认值:on

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

设置建议:推荐使用默认值。

设置不当的风险与影响:若关闭参数,无法使用DSL规则引擎提供的内置规则进行查询改写优化,可能导致生成的查询计划非最优。

dsl_engine_max_iteration

参数说明:用于控制DSL规则引擎在一次SQL改写中应用规则集迭代的最大次数。

参数类型:整型

参数单位:无

取值范围:1 ~ 100

默认值:10

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

设置建议:推荐使用默认值。

设置不当的风险与影响:设置过大,可能导致基于DSL的规则引擎开销过大;设置过小,可能导致生成的查询计划非最优。

dsl_rulelist

参数说明:控制会话级DSL规则启用禁用状态,通过规则名称指定需要变更状态的DSL规则,通过on或off状态指示规则的开关状态。

参数类型:字符串

参数单位:无

取值范围:

  • 规则名称:通过查询GS_DSL_REWRITERULE系统表的rulename字段获取。
  • 开关状态:
    • on表示开启规则。
    • off表示关闭规则。
gaussdb=# SHOW dsl_rulelist;
 dsl_rulelist 
--------------

(1 row)

gaussdb=# SET dsl_rulelist = 'compute_const:on';
SET
gaussdb=# SHOW dsl_rulelist;
    dsl_rulelist    
--------------------
 compute_const:on
(1 row)

默认值:’’,表示规则是否开启受GS_DSL_REWRITERULE系统表中的enabled字段控制。

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

设置建议:如需手动设置,需要明确开启或关闭的规则是否符合需求。

设置不当的风险与影响:设置规则为off,可能导致生成的查询计划非最优。

相关文档