VastbaseG100

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

Menu

GUC参数变更说明

新增参数

hw_trans_enc_enable

参数说明: 是否开启硬件传输加密功能。

该参数属于POSTMASTER类型参数,修改完成后需要重启数据库服务才能生效,具体请参考重设参数表1中对应设置方法进行设置。

取值范围: 布尔型

  • on:表示开启硬件传输加密功能。

  • off:表示关闭硬件传输加密功能。

默认值: off

audit_hash_enabled

参数说明: 是否开启审计文件完整性校验功能。

该参数属于POSTMASTER类型参数,修改完成后需要重启数据库服务才能生效,具体请参考重设参数表1中对应设置方法进行设置。

取值范围: 布尔型

  • on:表示开启审计文件完整性校验功能。

  • off:表示关闭审计文件完整性校验功能。

默认值: off

enable_set_variable_mssql_format

参数说明: 该参数用于控制在SQL Server数据库兼容模式下是否支持自定义用户变量的功能。

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

取值范围: 布尔型

  • on:表示在SQLServer数据库模式下支持自定义用户变量。

  • off:表示在SQLServer数据库模式下不支持自定义用户变量。

默认值: off

enable_global_result_cache

参数说明: 全局参数,是否启用result_cache,因为缓存失效涉及所有的表所以必须设置为全局参数。

参数级别: POSTMASTER

参数值: 布尔型

默认值: false

result_cache_mode

参数说明: 会话参数,决定查询结果是否使用查询缓存。

参数级别: USERSET

取值范围:

  • MANUAL(这也是默认情况),只有指定hint result_cache的时候才能使用查询缓存。

  • FORCE,所有不包含hint no_result_cache的查询语句都会使用查询缓存,前提是开启了全局的查询缓存。

默认值: manual

result_cache_max_size

参数说明: 全局参数,查询缓存所有缓存结果的总大小限制,以字节为单位,不受到额外控制,需要用户自己确认配置是否合理。

参数级别: POSTMASTER

取值范围: 0 - INT_MAX

默认值: 0

result_cache_max_result

参数说明: 全局参数,单个缓存结果占用内存的最大百分比(与result_cache_max_size之比值)。

参数级别: POSTMASTER

取值范围: 0-100

默认值: 0

result_cache_max_rows

参数说明: 全局参数,单个缓存的最大行数。

参数级别: USERSET

取值范围: 0 - INT_MAX

默认值: 10240

result_cache_max_tables

参数说明: 全局参数,单个缓存涉及的最大表数量。

参数级别: USERSET

取值范围: 0 - 100

默认值: 10

result_cache_whitelist

参数说明: 可以用于查询缓存的表oid的白名单。

参数级别: SIGHUP

取值范围: 表OID列表

  • 不为空时,查询语句中使用的表必须完全在此参数指定的列表中存在。

  • 为空时,不检查白名单。

默认值:

enable_seqscan_dopcost

参数说明: 启用顺序扫描的DOP成本计算。

参数级别: USERSET

取值范围:

  • on,表示按并行度计算SeqScan的IO代价。

  • off,表示优化器不再按并行度计算 SeqScan的IO代价。

默认值 on

full_audit_users

参数说明: 该参数用于配置全量审计用户列表,对列表中的用户执行的所有可被审计的操作记录审计日志。

参数级别:SIGHUP

取值范围: 字符串,多个用户名需使用逗号分隔。

默认值: 空字符串

no_audit_client

参数说明: 该参数用于配置不需要审计的客户端名称及IP地址列表。参数格式为:客户端名称@IP,同pg_query_audit函数中的client_conninfo字段,例如“cm_agent@127.0.0.1, vb_clean@127.0.0.1”。

参数级别:SIGHUP

取值范围: 字符串,多个配置项需使用逗号分隔。

默认值: 空字符串

当执行的SQL语句同时满足full_audit_users和no_audit_client参数配置时,以no_audit_client配置优先,不记录审计日志。

数据库服务端内部工具或节点之间通信也会产生审计日志,针对这些风险较低的审计场景的可以通过配置no_audit_client参数不记录审计,以节约审计日志占用空间,提升审计日志查询性能。

参数变更

参数变更

参数名称 描述 变更项 < V2.2 Build 13 V2.2 Build 13
behavior_compat_options 数据库兼容性行为配置项。 取值范围 参见兼容性配置项behavior_compat_options 新增选项:block_return_multi_results,实现了存储过程和匿名块支持返回多个结果集。参见behavior_compat_options

变更参数介绍

behavior_compat_options

参数说明: 数据库兼容性行为配置项,该参数的值由若干个配置项用逗号隔开构成。

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

取值范围: 字符串

默认值: reduce_tailing_zero,skip_insert_gs_source

表1 兼容性配置项

兼容性配置项

兼容性行为控制

display_leading_zero

浮点数显示配置项。控制数值类型中浮点类型、任意精度类型的小数点前零显示。并且length计算数字长度同步显示。

  • 不设置此配置项时,对于-1~0和0~1之间的小数,不显示小数点前的0。比如:
    select 0.1231243 as a, 0.1231243::numeric as b,0.1231243::integer(10,3) as c, length(0.1242343) as d;
        a     |    b     |  c   | d
    –----------+–--------+–----+----
     .1231243 | .1231243 | .123 | 8
    (1 row)
  • 设置此配置项时,对于-1~0和0~1之间的小数,显示小数点前的0。比如:
    select 0.1231243 as a, 0.1231243::numeric as b,0.1231243::integer(10,3) as c, length(0.1242343) as d;
         a     |     b     |   c   | d
    –----------+–--------+–----+----
     0.1231243 | 0.1231243 | 0.123 | 9
    (1 row)

end_month_calculate

add_months函数计算逻辑配置项。

假定函数add_months的两个参数分别为param1和param2,param1的月份和param2的和为月份result。

  • 不设置此配置项时,如果param1的日期(Day字段)为月末,并且param1的日期(Day字段)比result月份的月末日期小,计算结果中的日期字段(Day字段)和param1的日期字段保持一致。比如:
select add_months('2018-02-28',3) from sys_dummy;
add_months
---------------------
2018-05-28 00:00:00
(1 row)
  • 设置此配置项时,如果param1的日期(Day字段)为月末,并且param1的日期(Day字段)比result月份的月末日期比小,计算结果中的日期字段(Day字段)和result的月末日期保持一致。比如:
select add_months('2018-02-28',3) from sys_dummy;
add_months
---------------------
2018-05-31 00:00:00
(1 row)

compat_analyze_sample

analyze采样行为配置项。

设置此配置项时,会优化analyze的采样行为,主要体现在analyze时全局采样会更精确的控制在3万条左右,更好的控制analyze时DBnode端的内存消耗,保证analyze性能的稳定性。

bind_schema_tablespace

绑定模式与同名表空间配置项。

如果存在与模式名sche_name相同的表空间名,那么如果设置search_path为sche_name, default_tablespace也会同步切换到sche_name。

bind_procedure_searchpath

未指定模式名的数据库对象的搜索路径配置项。

在存储过程中如果不显示指定模式名,会优先在存储过程所属的模式下搜索。

如果找不到,则有两种情况:

  • 若不设置此参数,报错退出。
  • 若设置此参数,按照search_path中指定的顺序继续搜索。如果还是找不到,报错退出。

correct_to_number

控制to_number()结果兼容性的配置项。

若设置此配置项,则to_number()函数结果与pg11保持一致。

unbind_dive_bound

控制对整数除法的结果进行范围校验。

若设置此配置项,则不需要对除法结果做范围校验,例如,INT_MIN/(-1)可以得到输出结果为INT_MAX+1,反之,则会因为超过结果大于INT_MAX而报越界错误。

merge_update_multi

控制merge into匹配多行时是否进行update操作。

若设置此配置项,匹配多行时update不报错,否则默认与a db保持一致,报错。

return_null_string

控制函数lpad()和rpad()结果为空字符串”的显示配置项。

  • 不设置此配置项时,空字符串显示为NULL。
select length(lpad('123',0,'*')) from sys_dummy;
length
--------
(1 row)
  • 设置此配置项时,空字符串显示为”。
select length(lpad('123',0,'*')) from sys_dummy;
length
--------
0
(1 row)

compat_concat_variadic

控制函数concat()和concat_ws()对variadic类型结果兼容性的配置项。

若设置此配置项,当concat函数参数为variadic类型时,保留a db和Teradata兼容模式下不同的结果形式;否则默认a db和Teradata兼容模式下结果相同,且与a db保持一致。由于MY无variadic类型,所以该选项对MY无影响。

merge_update_multi

控制在使用MERGE INTO … WHEN MATCHED THEN UPDATE(参考MERGE)和INSERT … ON DUPLICATE KEY UPDATE(参考INSERT)时,当目标表中一条目标数据与多条源数据冲突时UPDATE行为。

若设置此配置项,当存在上述场景时,该冲突行将会多次执行UPDATE;否则(默认)报错,即MERGE或INSERT操作失败。

hide_tailing_zero

numeric显示配置项。不设置此项时,numeric按照指定精度显示。设置此项时,隐藏小数点后的末尾0。

set behavior_compat_options='hide_tailing_zero';
select cast(123.123 as numeric(15,10));
numeric
---------
123.123
(1 row)

rownum_type_compat

控制ROWNUM的类型,ROWNUM默认类型为INT8,设置此参数后,ROWNUM类型变更为NUMERIC类型。

aformat_null_test

控制rowtype类型判空逻辑,设置此项时,对于rowtype is not null判断,当一行数据有一列不为空的时候返回ture。

否则,对于rowtype is not null判断,当一行数据所有列不为空的时候返回ture。

aformat_regexp_match

控制正则表达式函数的匹配行为。

设置此项,且sql_compatibility参数的值为A或B时,正则表达式的 flags 参数支持的选项含义有变更:
  • 默认不能匹配 'n' 字符。
  • flags 中包含n选项时, 能够匹配 'n' 字符。
  • regexp_replace(source, pattern replacement) 函数替换所有匹配的子串。
  • regexp_replace(source, pattern, replacement, flags) 在 flags值为” 或者null时,返回值为null。

否则,正则表达式的 flags 参数支持的选项含义:

  • 默认能匹配 'n' 字符。
  • flags 中的 n 选项表示按照多行模式匹配。
  • regexp_replace(source, pattern replacement) 函数仅替换第一个匹配到的子串。
  • regexp_replace(source, pattern, replacement, flags) 在 flags值为” 或者null时,返回值为替换后的字符串。

compat_cursor

控制隐式游标状态兼容行为。设置此项,且兼容O,隐式游标状态(SQL%FOUND、SQL%NOTFOUND、SQL%ISOPNE、SQL%ROWCOUNT)由原先的仅在当前执行的函数有效,拓展到包括本函数调用的子函数有效。

proc_outparam_override

控制存储过程出参的重载行为,打开该参数后,对于存储过程只有out出参部分不同的情况下,也可以正常调用。

proc_implicit_for_loop_variable

控制存储过程中FOR_LOOP查询语句行为设置此项时,在FOR rec IN query LOOP语句中,若rec已经定义,不会复用已经定义的rec变量,而且重新建立一个新的变量。否则,会复用已经定义的rec变量,不会建立新的变量。

allow_procedure_compile_check

控制存储过程中select语句和open cursor语句的编译检查设置此项时,在存储过程中执行select语句、open cursor for语句、cursor%rowtype语句、for rec in语句时,若查询的表不存在,则无法创建创建存储过程,不支持trigger函数的编译检查,若查询的表存在,则成功创建存储过程。

char_coerce_compat

控制char(n)类型向其它变长字符串类型转换时的行为。默认情况下char(n)类型转换其它变长字符串类型时会省略尾部的空格,开启该参数后,转换时不再省略尾部的空格,并且在转换时如果char(n)类型的长度超过其它变长字符串类型时将会报错。该参数仅在sql_compatibility参数的值为A时生效。

pgformat_substr

控制substr(str, from, for)在不同场景下的表现。默认情况下,当from小于0时,substr将从字符串尾部开始计数;当for小于1时,substr将返回NULL。开启该参数后,当from小于0时,将从字符串的第一位的前(-from + 1)位开始计数;当for小于0时,substr将报错。该参数仅在sql_compatibility参数的值为PG时生效。

plpgsql_dependency

开启此参数后,创建函数,存储过程,包支持未定义的对象。可以新建成功。可以在GS_DEPENDENCIES和GS_DEPENDENCIES_OBJ查询对应的依赖关系。

开启此参数后,创建PLSQL对象时,会主动维护依赖于该PLSQL对象的OID,不再需要用户手动更新。

注意: 在并发创建PLSQL对象时,如果需要维护的对象间存在竞争关系,可能会造成死锁。

block_return_multi_results 开启此参数后,支持存储过程和匿名块支持返回多个结果集。该参数仅在sql_compatibility参数的值为B和MSSQL时生效。

移除参数

  • use_crypto_card