# 基于DSL的规则引擎
#### enable_dsl_ruleengine
**参数说明** **：**标识是否开启基于DSL的规则引擎，如果开启该功能，优化器则会应用DSL规则对SQL进行等价改写。
**参数类型：**布尔型
**参数单位：**无
**取值范围** **：**
- on：表示开启。
- off：表示关闭。
**默认值** **：**on
**设置方式：** 该参数属于USERSET类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**若关闭参数，无法使用DSL规则引擎提供的内置规则进行查询改写优化，可能导致生成的查询计划非最优。
#### dsl_engine_max_iteration
**参数说明** **：**用于控制DSL规则引擎在一次SQL改写中应用规则集迭代的最大次数。
**参数类型：**整型
**参数单位：**无
**取值范围** **：**1 \~ 100
**默认值** **：**10
**设置方式：** 该参数属于USERSET类型参数，请参见[表1](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**设置过大，可能导致基于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](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0752.html#ZH-CN_TOPIC_0000002793787853__zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**如需手动设置，需要明确开启或关闭的规则是否符合需求。
**设置不当的风险与影响：**设置规则为off，可能导致生成的查询计划非最优。
