
# 基因查询优化器
介绍基因查询优化器相关的参数。基因查询优化器（GEQO）是一种启发式的查询规划算法。这个算法减少了对复杂查询规划的时间，而且生成规划的开销有时也小于正常的详尽的查询算法。
#### geqo
**参数说明** **：**控制基因查询优化的使用。该参数可在PDB级别设置。
**参数类型：**布尔型
**参数单位：**无
**取值范围** **：**
- on：表示使用。
- off：表示不使用。
**默认值** **：**on。在PDB场景内，若未设置该参数，则继承来自全局的设置。
**设置方式：** 该参数属于USERSET类型参数，请参考[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：** 通常情况下在执行过程中不要关闭，[geqo_threshold]参数提供了更精细的控制GEQO的方法。
**设置不当的风险与影响：**若关闭GEQO参数，则当查询语句涉及的表数量较大时，仍采用动态规划枚举所有组合，优化器生成计划的开销极大。
 #### geqo_threshold
**参数说明** **：**如果执行语句的数量超过设计的FROM的项数，则会使用基因查询优化来执行查询。该参数可在PDB级别设置。
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- 对于简单的查询，通常用详尽搜索方法，当涉及多个表的查询的时候，用GEQO可以更好地管理查询。
- 一个FULL OUTER JOIN构造仅作为一个FROM项。
 
**参数类型：**整型
**参数单位：**无
**取值范围** **：**2 \~ 2147483647
**默认值** **：**12。在PDB场景内，若未设置该参数，则继承来自全局的设置。
**设置方式：** 该参数属于USERSET类型参数，请参考[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值，若动态规划的性能开销能接受，可以调大此值；若当前动态规划的开销较难接受，可以调小此值。
**设置不当的风险与影响：**设置过大，可能导致动态规划枚举所有计划的开销难以接受；设置过小，可能损失计划的准确性。
#### geqo_effort
**参数说明** **：**控制GEQO在规划时间和规划质量之间的平衡。该参数可在PDB级别设置。
**参数类型：**整型
**参数单位：**无
**取值范围** **：**1 \~ 10
**默认值** **：**5。在PDB场景内，若未设置该参数，则继承来自全局的设置。
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- geqo_effort实际上并没有直接做任何事情，只是用于计算其他影响GEQO的变量的默认值。也可以手动设置其他参数。
- 比默认值大的数值增加了查询规划的时间，但是也增加了选中有效查询的几率。
 
**设置方式：** 该参数属于USERSET类型参数，请参考[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**设置过大，可能导致查询规划开销过大；设置过小，可能导致生成的查询计划质量较差。
 #### geqo_pool_size
**参数说明** **：**控制GEQO使用池的大小，也就是基因全体中的个体数量。该参数可在PDB级别设置。
**参数类型：**整型
**参数单位：**无
**取值范围** **：**0 \~ 2147483647。
**默认值** **：**0。在PDB场景内，若未设置该参数，则继承来自全局的设置。
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
设置为0，表示使用系统自适应方式，GaussDB会基于geqo_effort和表的个数选取合适的值。其余情况至少设置为2，且有用的值一般在100到1000之间。
**设置方式：** 该参数属于USERSET类型参数，请参考[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**设置过大，可能导致查询规划开销过大；设置过小，可能导致生成的查询计划质量较差。
#### geqo_generations
**参数说明** **：**控制GEQO使用的算法的迭代次数。该参数可在PDB级别设置。
**参数类型：**整型
**参数单位：**无
**取值范围** **：**0 \~ 2147483647。在PDB场景内，若未设置该参数，则继承来自全局的设置。
**默认值** **：**0
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
如果设置为0，则基于[geqo_pool_size]选取合适的值。其余情况至少设置为1，且有用的值介于100和1000之间。
**设置方式：** 该参数属于USERSET类型参数，请参考[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**设置过大，可能导致查询规划开销过大；设置过小，可能导致生成的查询计划质量较差。
#### geqo_selection_bias
**参数说明** **：**控制GEQO的选择性偏好，即一个种群中的选择性压力。该参数可在PDB级别设置。
**参数类型：**浮点型
**参数单位：**无
**取值范围** **：**1.5 \~ 2
**默认值** **：**2
**设置方式：** 该参数属于USERSET类型参数，请参考[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**设置较高可能会导致GEQO算法更快地集中在一些优秀的计划上，而不是探索可行计划中的多样性。这可能会减少算法找到全局最优解的可能性，但可以加快找到可行的较优解的速度。
#### geqo_seed
**参数说明** **：**控制GEQO使用的随机数生产器的初始化值，用来从顺序连接在一起的查询空间中查找随机路径。该参数可在PDB级别设置。
**参数类型：**浮点型
**参数单位：**无
**取值范围** **：**0.0 \~ 1。在PDB场景内，若未设置该参数，则继承来自全局的设置。
**默认值** **：**0
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
不同的值会改变搜索的连接路径，从而影响所找路径的优劣。
**设置方式：** 该参数属于USERSET类型参数，请参考[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**不同值会带来不同的随机性，可能影响连接路径生成的优劣。
