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 < const
或rownum <= 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