
# 基因查询优化器
介绍基因查询优化器相关的参数。基因查询优化器（GEQO）是一种启发式的查询规划算法。这个算法减少了对复杂查询规划的时间，而且生成规划的开销有时也小于正常的详尽的查询算法。
#### geqo
**参数说明**：控制基因查询优化的使用。
**参数类型**：USERSET
**取值范围**：布尔型
- on表示使用。
- off表示不使用。
**默认值**：on
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
通常情况下在执行过程中不要关闭，geqo_threshold变量提供了更精细的控制GEQO的方法。
#### geqo_threshold
**参数说明**：如果执行语句的数量超过设计的FROM的项数，则会使用基因查询优化来执行查询。
**参数类型**：USERSET
**取值范围**：整型，2～INT_MAX。
**默认值**：12
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
- 对于简单的查询，通常使用详尽的搜索方法，当涉及多个表的查询的时候，用GEQO可以更好地管理查询。
- 一个FULL OUTER JOIN构造仅作为一个FROM项。
 
#### geqo_effort
**参数说明**：控制GEQO在规划时间和规划质量之间的平衡。
**参数类型**：USERSET
**取值范围**：整型，1～10
**默认值**：5
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
- 比默认值大的数值增加了查询规划的时间，但是也增加了选中有效查询的几率。
- geqo_effort实际上并没有直接作用，只是用于计算其他影响GEQO的变量的默认值。如有需求，可以手动设置其他相关参数。
 
#### geqo_pool_size
**参数说明**：控制GEQO使用池的大小，也就是基因全体中的个体数量。
**参数类型**：USERSET
**取值范围**：整型，0～INT_MAX
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
至少是2，且有用的值一般在100到1000之间。设置为0，表示使用系统自适应方式，DWS会基于geqo_effort和表的个数选取合适的值。
**默认值**：0
#### geqo_generations
**参数说明**：控制GEQO使用的算法的迭代次数。
**参数类型**：USERSET
**取值范围**：整型，0～INT_MAX
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
必须至少是1，且有用的值介于100和1000之间。如果设置为0，则基于geqo_pool_size选取合适的值。
**默认值**：0
#### geqo_selection_bias
**参数说明**：控制GEQO的选择性偏好，即一个种群中的选择性压力。
**参数类型**：USERSET
**取值范围**：浮点型，1.5～2.0
**默认值**：2
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
数值越大表示选择性压力越高，更优的个体被选中的概率更高。数值越小表示选择性压力越低，允许更多多样性。
#### geqo_seed
**参数说明**：控制GEQO使用的随机数生产器的初始化值，用来从顺序连接在一起的查询空间中查找随机路径。
**参数类型**：USERSET
**取值范围**：浮点型，0.0～1.0
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
不同的值会改变搜索的连接路径，从而影响了所找路径的优劣。
**默认值**：0
