-
turbo_engine_version 参数说明:对于建表指定turbo存储格式表(表属性中enable_turbo_store参数设置为on),且当查询不涉及merge join或sort agg算子时,执行器可走turbo执行引擎,执行器部分性能可获得成倍性能提升。 取值范围:0,1,2,3 取值为0时,表示turbo执行引擎关闭。 取值为1时,表示仅针对单表agg查询场景使用turbo执行引擎。 取值为2时,表示仅针对单表agg或多表join关联查询场景使用turbo执行引擎。 取值为3时,对于大多常用算子可使用turbo执行引擎加速,不支持算子如merge join,sort agg等算子。数据量较大且turbo_engine_version取值为3时,merge join,sort agg算子出现的情况较少,因此基本可以实现任意SQL语句的turbo执行引擎加速。 默认值:3 跨VW场景暂不建议打开turbo执行引擎。
-
best_agg_plan 参数说明:对于stream下的Agg操作,优化器会生成三种计划: hashagg+gather(redistribute)+hashagg。 redistribute+hashagg(+gather)。 hashagg+redistribute+hashagg(+gather)。 本参数用于控制优化器生成哪种hashagg的计划。 取值范围:0,1,2,3 取值为1时,强制生成第一种计划。 取值为2时,如果group by列可以重分布,强制生成第二种计划,否则生成第一种计划。 取值为3时,如果group by列可以重分布,强制生成第三种计划,否则生成第一种计划。 取值为0时,优化器会根据以上三种计划的估算cost选择最优的一种计划生成。 默认值:0
-
geqo_selection_bias 参数说明:控制GEQO的选择性偏好,即一个种群中的选择性压力。该参数可在PDB级别设置。 参数类型:浮点型 参数单位:无 取值范围:1.5 ~ 2 默认值:2 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置较高可能会导致GEQO算法更快地集中在一些优秀的计划上,而不是探索可行计划中的多样性。这可能会减少算法找到全局最优解的可能性,但可以加快找到可行的较优解的速度。
-
geqo_seed 参数说明:控制GEQO使用的随机数生产器的初始化值,用来从顺序连接在一起的查询空间中查找随机路径。该参数可在PDB级别设置。 参数类型:浮点型 参数单位:无 取值范围:0.0 ~ 1。在PDB场景内,若未设置该参数,则继承来自全局的设置。 默认值:0 不同的值会改变搜索的连接路径,从而影响所找路径的优劣。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:不同值会带来不同的随机性,可能影响连接路径生成的优劣。
-
geqo 参数说明:控制基因查询优化的使用。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示使用。 off:表示不使用。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:通常情况下在执行过程中不要关闭,geqo_threshold参数提供了更精细的控制GEQO的方法。 设置不当的风险与影响:若关闭GEQO参数,则当查询语句涉及的表数量较大时,仍采用动态规划枚举所有组合,优化器生成计划的开销极大。
-
geqo_threshold 参数说明:如果执行语句的数量超过设计的FROM的项数,则会使用基因查询优化来执行查询。该参数可在PDB级别设置。 对于简单的查询,通常用详尽搜索方法,当涉及多个表的查询的时候,用GEQO可以更好地管理查询。 一个FULL OUTER JOIN构造仅作为一个FROM项。 参数类型:整型 参数单位:无 取值范围:2 ~ 2147483647 默认值:12。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值,若动态规划的性能开销能接受,可以调大此值;若当前动态规划的开销较难接受,可以调小此值。 设置不当的风险与影响:设置过大,可能导致动态规划枚举所有计划的开销难以接受;设置过小,可能损失计划的准确性。
-
geqo_effort 参数说明:控制GEQO在规划时间和规划质量之间的平衡。该参数可在PDB级别设置。 参数类型:整型 参数单位:无 取值范围:1 ~ 10 默认值:5。在PDB场景内,若未设置该参数,则继承来自全局的设置。 geqo_effort实际上并没有直接做任何事情,只是用于计算其他影响GEQO的变量的默认值。也可以手动设置其他参数。 比默认值大的数值增加了查询规划的时间,但是也增加了选中有效查询的几率。
-
geqo_pool_size 参数说明:控制GEQO使用池的大小,也就是基因全体中的个体数量。该参数可在PDB级别设置。 参数类型:整型 参数单位:无 取值范围:0 ~ 2147483647。 默认值:0。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置为0,表示使用系统自适应方式,
GaussDB 会基于geqo_effort和表的个数选取合适的值。其余情况至少设置为2,且有用的值一般在100到1000之间。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过大,可能导致查询规划开销过大;设置过小,可能导致生成的查询计划质量较差。
-
geqo_generations 参数说明:控制GEQO使用的算法的迭代次数。该参数可在PDB级别设置。 参数类型:整型 参数单位:无 取值范围:0 ~ 2147483647。在PDB场景内,若未设置该参数,则继承来自全局的设置。 默认值:0 如果设置为0,则基于geqo_pool_size选取合适的值。其余情况至少设置为1,且有用的值介于100和1000之间。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过大,可能导致查询规划开销过大;设置过小,可能导致生成的查询计划质量较差。
-
cpu_index_tuple_cost 参数说明:设置优化器计算在一次索引扫描中处理每条索引的开销。该参数可在PDB级别设置。 参数类型:浮点型 参数单位:无 取值范围:0 ~ DBL_MAX 默认值:0.005。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:该参数影响一次查询中对索引扫描的性能开销评估,错误地设置该参数会影响优化器对生成计划的选择,部分场景下影响查询性能。若要更改,请谨慎操作,避免因误操作产生意料之外的风险。
-
allocate_mem_cost 参数说明:设置优化器计算Hash Join创建Hash表开辟内存空间所需的开销,供Hash join估算不准时调优使用。该参数可在PDB级别设置。 参数类型:浮点型 参数单位:无 取值范围:0 ~ DBL_MAX 默认值:0。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值,仅在Hash Join估算不准确时调整该参数。 设置不当的风险与影响:错误地设置该参数可能导致Hash Join估算不准确,部分场景下影响查询性能。若要更改,请谨慎操作,避免因误操作产生意料之外的风险。
-
cpu_tuple_cost 参数说明:设置优化器计算在一次查询中处理每一行数据的开销。该参数可在PDB级别设置。 参数类型:浮点型 参数单位:无 取值范围:0 ~ DBL_MAX 默认值:0.01。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:该参数影响一次查询中对处理一行数据的性能开销评估,错误地设置该参数会影响优化器对生成计划的选择,部分场景下影响查询性能。若要更改,请谨慎操作,避免因误操作产生意料之外的风险。
-
cpu_operator_cost 参数说明:设置优化器计算一次查询中执行一个操作符或函数的开销。该参数可在PDB级别设置。 参数类型:浮点型 参数单位:无 取值范围:0 ~ DBL_MAX 默认值:0.0025。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:该参数影响一次查询中对操作符或函数的性能开销评估,错误地设置该参数会影响优化器对生成计划的选择,部分场景下影响查询性能。若要更改,请谨慎操作,避免因误操作产生意料之外的风险。
-
effective_cache_size 参数说明:设置优化器在一次单一的查询中可用的磁盘缓冲区的有效大小。该参数可在PDB级别设置。 设置这个参数,要考虑GaussDB的共享缓冲区以及内核的磁盘缓冲区,还要考虑预计在不同表之间的并发查询数目,因为它们将共享可用的空间。 这个参数对GaussDB分配的共享内存大小没有影响,它也不会使用内核磁盘缓冲,它只用于估算。该数值用磁盘页来计算,通常每个页面是8192字节。 参数类型:整型 参数单位:页面(8kB) 取值范围: 方式一:设置为不带单位的整数,整数范围为1 ~ 2147483647。例如设置为200,表示200个页面,即200*8kB的大小。 方式二:设置为带单位的值,范围为1*8kB ~ 2147483647*8kB。例如设置为200MB,表示200MB的大小。单位仅限于“kB”、“MB”和“GB”。 默认值: 280GB(196核CPU/1536G内存);180GB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存);135GB(96核CPU/768G内存);100GB(80核CPU/640G内存);90GB(64核CPU/512G内存);80GB(60核CPU/480G内存);40GB(32核CPU/256G内存);18GB(16核CPU/128G内存);8GB(8核CPU/64G内存);4GB(4核CPU/32G内存);2GB(4核CPU/16G内存)。在PDB场景内,若未设置该参数,则继承来自全局的设置。
-
seq_page_cost 参数说明:设置优化器计算一次顺序磁盘页面抓取的开销。该参数可在PDB级别设置。 参数类型:浮点型 参数单位:无 取值范围:0 ~ DBL_MAX 默认值:1。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:该参数影响一次查询中对顺序抓取磁盘页面的性能开销评估,错误地设置该参数会影响优化器对生成计划的选择,部分场景下影响查询性能。若要更改,请谨慎操作,避免因误操作产生意料之外的风险。