基于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,可能导致生成的查询计划非最优。