VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

GUC参数变更

新增参数

优化器方法配置

enable_je_enhanced

参数说明: 控制是否启用JOIN ELIMINATION子表消除功能。该功能对满足条件的左外连接进行优化,消除不需要的右表,提升查询效率。

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

取值范围: 布尔型

  • on:表示启用子表消除。

  • off:表示关闭子表消除。

默认值: off

rewrite_rule

参数说明: 标识开启的可选查询重写规则。有部分查询重写规则是可选的,开启它们并不能总是对查询效率有提升效果。在特定的客户场景中,通过此GUC参数对查询重写规则进行设置,使得查询效率最优。

此参数可以控制查询重写规则的组合,比如有多个重写规则:rule1、rule2、rule3、rule4。可以设置:

  • 启用查询重写规则rule1。

    SET rewrite_rule=rule1;
    
  • 启用查询重写规则rule2和rule3。

    SET rewrite_rule=rule2,rule3; 
    
  • 关闭所有可选查询重写规则。

    SET rewrite_rule=none; 
    

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

取值范围:字符串

  • none:不使用任何可选查询重写规则。

  • lazyagg:使用Lazy Agg查询重写规则(消除子查询中的聚集运算)。

  • magicset : 使用Magic Set查询重写规则(从主查询中下推条件到子查询)。

  • partialpush:使用Partial Push查询重写规则。

  • uniquecheck:使用Unique Check查询重写规则(提升目标列中无agg的子查询语句,在执行时检查返回行数是否为1行)。

  • disablerep:使用Disable Replicate查询重写规则。

  • intargetlist:使用In Target List查询重写规则(提升目标列中的子查询)。

  • predpush:在predpushnormal和predpushforce中根据代价选择最优计划。

  • predpushnormal:使用Predicate Push查询重写规则(下推谓词条件到子查询中)。

  • predpushforce:使用Predicate Push查询重写规则(下推谓词条件到子查询中,尽可能的利用索引加速)。

  • disable_pullup_expr_sublink:禁止优化器将expr_sublink类型的子连接提升,关于sublink的分类和提升原理详见子查询调优

  • enable_sublink_pullup_enhanced:使用增强后的sublink查询重写规则,包括where、 having子句的非相关子链接提升和winmagic重写优化。

  • rownumenhance:可以将rownum < constrownum <= const 的场景转为limit常量算子。

  • enable_any_sublink_pullup_enhanced:计划器尝试将相关子连接进行提升,生成更好的执行计划。详细用法可参见ANY子连接性能优化

  • order_by_elimination:消除部分场景下不影响最终查询结果的ORDER BY子句,以提高执行效率。

enable_any_sublink_pullup_enhanced选项仅在V2.2 Build 15(Patch No.3)及以上版本支持。

new_sort

参数说明: 控制是否开启自适应排序。

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

取值范围: 枚举型

  • adaptive_sort:开启自适应排序,算法自适应选择。

  • force_pdq:开启自适应排序,并使用 PDQSort 排序算法。

  • force_redix:开启自适应排序,算法选择 radixsort。

  • off:不开启自适应排序。

默认值: off

new_sort_store_strxfrm_var

参数说明: 在开启自适应排序的情况下,对于 TEXT、BPCHAR、VARCHAR 类型,在 collate 不为 “C” 时是否保存 strxfrm() 后的字符串,以提高字符串比较的性能。开启后可以提升字符串比较与排序性能,但会占用更大的工作内存。

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

取值范围: 布尔型

  • true:表示在开启自适应排序的情况下,在 collate 不为 “C” 时保存 strxfrm() 后的字符串。
  • false:表示在开启自适应排序的情况下,在 collate 不为 “C” 时不保存 strxfrm() 后的字符串。

默认值: false

new_sort_string_prefix_length

参数说明: 在开启自适应排序的情况下,对于 TEXT、BPCHAR、VARCHAR 类型,该参数用于指定加入排序空间的数据长度。

设置的值越大,占用的空间越大。排序性能主要取决于数据的分布、长度等条件,仅在设置为合适的值时,可以提升排序性能。

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

取值范围: 整型,1 ~ 1024

默认值: 12

new_sort_msdradix_size_threshold

参数说明: 在开启自适应排序的情况下,当排序的位宽超过该参数设置的值时,使用 MsdRadixSort 排序算法;反之使用 LsdRadixSort 排序算法。

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

取值范围: 整型,1 ~ 64

默认值: 5

scalar_array_filter_pushdown_threshold

参数说明: 用于设置标量数组筛选器下推为索引或表扫描的阈值。

  • 所选值小于 scalar_array_filter_pushdown_threshold的标量数组筛选器将被下推为索引或表扫描。

  • scalar_array_filter_pushdown_threshold = 0 表示每个标量数组筛选器都被推送。

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

取值范围: 整型,0 ~ INT_MAX

默认值: 0

Query

enable_heap_multi_insert_for_insert_select

参数说明: 控制是否启用单线程INSERT批量插入功能。开启该参数可提升批量INSERT执行效率至少10%,支持以下两种形式的SQL语句使用批量插入提高性能。

  • INSERT INTO table VALUES :要求VALUES行数在100行以上。
  • INSERT INTO table SELECT * FROM oldtable;
  • 仅支持ASTORE。
  • 不支持带有触发器的表。
  • 不支持带有自增列的表。
  • 不支持分区表。
  • 不支持UPSERT场景。
  • 不支持INSERT ALL。

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

取值范围: 布尔型

  • on:表示启用批量插入。
  • off:表示不启用批量插入。

默认值: off

事务

enable_nonblocking_ddl

参数说明: 控制是否启用在线DDL。在线DDL是指在执行特定DDL等锁的过程中,DML和查询语句可正常执行,不会被DDL阻塞。可有效避免因DDL等锁造成DML和查询语句阻塞的情况。

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

取值范围: 布尔型

  • on:表示启用在线DDL。
  • off:表示不启用在线DDL。

默认值: off

查询和索引统计收集器

time_record_level

参数说明: 控制对每个会话中当前正在执行的SELECT、INSERT、UPDATE、DELETE、MERGE INTO语句的耗时级别。

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

time_record_level参数影响DB_TIME耗时统计,当不为0时,那么采集到的所有时间都是0,如慢sql将不再生效。

取值范围: 整型,[0,10]

  • 0 表示开启最高级别。
  • 1~10 当前不支持级别控制,只要不配置为0就不采集DB_TIME相关的时间。

默认值: 0

记录日志的位置

log_max_size

参数说明: 日志空间所能容纳的日志总量的最大值,为0时表示不对日志空间容量进行限制,目前仅对服务器日志文件所在的文件夹生效。

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

取值范围: 整型,0 ~ INT_MAX,单位为KB。

0时表示不对日志空间容量进行限制。

建议该值大小设置级别至少为MB级,可以尽可能保留日志信息。

默认值: 0

系统性能快照

wdr_usage_statistic_retention_days

参数说明: 该参数用于设置VB_USAGE_STATISTIC系统表中记录的存储时间。当参数设置为0时,表示在删除之前的数据后,不会向表中插入新的记录。

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

取值范围: 整型,[0,9999],单位:天

默认值:365

插件控制参数

pg_bigm.last_update

参数说明: 为提高Vastbase的全文搜索性能,Vastbase支持pg_bigm插件功能。该参数用于呈现pg_bigm插件的发布日期。

该参数属于INTERNAL类型参数,用户无法修改,只能查看。

取值范围: pg_bigm插件的发布日期。

默认值:pg_bigm插件的发布日期。

pg_bigm.enable_recheck

参数说明: 控制pg_bigm是否在索引扫描时进行重新检查。

Vastbase在内部执行以下过程来获取搜索结果:

  • 全文搜索索引中检索候选结果。
  • 从候选结果中选择正确的搜索结果。

后一个过程就是重新检查,从全文搜索索引中检索到的候选结果可能包含错误的结果。重新检查过程可以避免这种错误的结果。因此建议用户保持默认值(on)以保证结果的正确性。

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

取值范围: 布尔型

  • on:启用索引扫描时重新检查。

    • 系统将在使用索引进行查询时重新检查,以确保返回的结果是准确的。即使索引无法完全确定哪些行包含索引项,重新检查操作可以验证每个潜在结果,确保返回真正只包含索引项的行。
    • 开启该选项时可以提高查询的准确性,尤其是在需要确保结果正确性的情况下。
  • off:禁用索引扫描时重新检查。

    • 如果执行查询并且索引可以返回包含索引项的行,那么查询将非常高效,因为不需要做进一步的检查。
    • 关闭该选项,如果索引无法完全确定那些行包含索引项,它可能会返回一些潜在结果(不准确的结果),然后需要进行重新检查以确定哪些结果是确实包含索引项的,这可能会增加查询的开销。

默认值:on

pg_bigm.gin_key_limit

参数说明: 该参数用于限制用于全文本搜索的2-gram元素的最大个数。

如果发现使用所有的2-gram元素导致性能下降,可以调整该参数值,限制2-gram元素的个数来提高性能。

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

取值范围: 整型,0-2147483647

默认值:0,表示使用所有的2-gram元素。

pg_bigm.similarity_limit

参数说明: 该参数用于设置相似度阈值,相似度超过这个阈值的元组会作为相似性搜索(使用 =% 运算符执行相似性搜索)的结果。

如果发现使用所有的2-gram元素导致性能下降,可以调整该参数值,限制2-gram元素的个数来提高性能。

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

取值范围: 浮点型,0-1

默认值:0.3

类型转换

enable_ignore_dquotes_for_char_convert

参数说明: 用于控制定长向变长转换时是否加双引号,开启时转换不加双引号。

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

取值范围: 布尔型

  • on表示定长向变长转换时不加双引号。

  • off表示定长向变长转换时加双引号。

默认值:off

变更参数

Global SysCache参数

enable_global_syscache

参数说明: 控制是否使用全局系统缓存功能。

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

  • PLPython在Fenced模式禁止使用全局系统缓存。

  • 推荐结合线程池参数使用。打开该参数后,如果需要访问备机,建议设置备机wal_level级别为hot_standby以上。

取值范围: 布尔型

  • on表示开启全局系统缓存功能。
  • off表示不开启全局系统缓存功能。

默认值:on