云数据库 GAUSSDB-其它选项:enable_partrouting_optimization

时间:2024-11-13 14:45:25

enable_partrouting_optimization

参数说明:控制是否支持分区表插入优化。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示支持分区表插入优化,针对inert select语句,当select包含常量分区键时,insert只需要做一次分区路由,提升性能。
  • off:表示不支持分区表插入优化,插入每一条数据前都需要做一次分区路由去确定插入哪一张分区表。

默认值:on

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

设置建议:推荐使用默认值。

设置不当的风险与影响:如果关闭该参数,部分插入分区表的场景会没有该参数带来的性能优化效果,无其他影响。

分区表插入优化约束:
  • 只支持Insert select语句。
  • insert into ta select from tb中,插入a表中所有分区键的值,对应select结果集中的列值必须是常量(可以不存在该列,因为默认值也是恒定的)。
    • insert into ta select c,d from b where tb.c='1'或select '1' as c, d from tb则可以判断结果列tb.c为常量。
    • insert into ta select c,d from b where tb.c=func('1'); 如果func()不是volatile函数,也不是包含非常量参数的stable/immutable函数,则可以判断tb.c为常量。
    • 如果列值为聚合函数的返回值,如:insert into ta select count(c),d from b where tb.c='1' group by c, d; 不能判断count(c)为常量。
  • 不支持upsert子句。
  • 不支持包含before和instead触发器的表,因为可能改变要插入的数据。
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-10-0319.html