云数据库 GAUSSDB-其他优化器选项:plan_cache_mode

时间:2024-11-13 14:46:30

plan_cache_mode

参数说明标识在prepare语句中,选择生成执行计划的策略。

参数类型:枚举类型

参数单位:

取值范围auto、force_generic_plan、force_custom_plan

  • auto:表示由优化器自动选择custom plan或者generic plan。
  • force_generic_plan:表示强制走generic plan(软解析)。generic plan是指对于prepare语句生成计划,该计划策略会在执行execute语句的时候把参数bind到plan中,然后执行计划。这种方案的优点是每次执行可以省去重复的优化器开销;缺点是当bind参数字段上数据存在倾斜时该计划可能不是最优的,部分bind参数场景下执行性能较差。bind会绑定第一次传入的参数类型,如果同一占位符两次传入的参数类型不一致会导致报错。
  • force_custom_plan:表示强制走custom plan(硬解析)。custom plan是指对于prepare语句,在执行execute的时候,把execute语句中的参数嵌套到语句之后生成的计划。custom plan会根据execute语句中具体的参数生成计划,这种方案的优点是每次都按照具体的参数生成优选计划,执行性能比较好;缺点是每次执行前都需要重新生成计划,存在大量的重复的优化器开销。

此参数只对prepare语句生效,一般用在prepare语句中参数化字段存在比较严重的数据倾斜的场景下。

默认值auto

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:根据实际业务场景进行设置。

设置不当的风险与影响:设置不当可能会导致计划生成开销增加或计划生成质量下降。

support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0283.html