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

时间:2024-11-02 18:49:48

enable_partrouting_optimization

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

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

取值范围:布尔型

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

默认值:on

分区表插入优化约束
  1. 只支持INSERT SELECT语句。
  2. INSERT INTO ta SELECT FROM tb中,插入a表中所有分区键的值,对应SELECT结果集中的列值必须是常量(可以不存在该列,因为默认值也是恒定的)。

    (1) INSERT INTO ta SELECT c,d FROM b WHERE tb.c='1'或SELECT '1' AS c, d FROM tb则可以判断结果列tb.c为常量。

    (2) INSERT INTO ta SELECT c,d FROM b WHERE tb.c=func('1'); 如果func()不是volatile函数,也不是包含非常量参数的stable/immutable函数,则可以判断tb.c为常量。

    (3) 如果列值为聚合函数的返回值,如:INSERT INTO ta SELECT count(c),d FROM b WHERE tb.c='1' GROUP BY c, d; 不能判断count(c)为常量。

  3. 不支持UPSERT子句。
  4. 不支持包含BEFORE和INSTEAD触发器的表,因为可能改变要插入的数据。
support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-1717.html