文档首页 > > 开发指南> 配置GUC参数>

其它选项

其它选项

分享
更新时间:2021/04/07 GMT+08:00

server_version

参数说明:报告服务器版本号(字符串形式)。

参数类型:INTERNAL(固定参数,用户无法修改此参数,只能查看)

取值范围:字符串

默认值:9.2.4

server_version_num

参数说明:报告服务器版本号(整数形式)。

参数类型:INTERNAL(固定参数,用户无法修改此参数,只能查看)

取值范围:整数

默认值:90204

block_size

参数说明:报告当前数据库所使用的块大小。

参数类型:INTERNAL(固定参数,用户无法修改此参数,只能查看)

取值范围:1024,2048,4096,8192,16384,32768

默认值:8192

segment_size

参数说明:报告当前数据库所使用的段文件大小。

参数类型:INTERNAL(固定参数,用户无法修改此参数,只能查看)

默认值:1GB

max_index_keys

参数说明:报告当前数据库能够支持的索引键值的最大数目。

参数类型:INTERNAL(固定参数,用户无法修改此参数,只能查看)

默认值:32

gin_fuzzy_search_limit

参数说明:开发GIN索引的主要目的是让GaussDB(DWS)支持高度可升级的全文索引,并且通常会遇见全文索引返回海量结果的情形。此外,在查询高频词的时候,这样做所得到的结果集没什么用处。因为从磁盘读取大量记录并对其进行排序会消耗大量资源,这在产品环境下是不能接受的。为了易于控制这种情况,GIN有一个可配置的结果集大小上限配置参数gin_fuzzy_search_limit。缺省值0表示没有限制。如果设置了非零值,那么返回的结果就是从完整结果集中随机选择的一部分。

参数类型:USERSET

取值范围:0到int最大值

默认值:0

integer_datetimes

参数说明:报告是否支持64位整数形式的日期和时间格式。

参数类型:INTERNAL(固定参数,用户无法修改此参数,只能查看)

取值范围:布尔型

  • on表示支持。
  • off表示不支持。

默认值:on

enable_cluster_resize

参数说明:对于sql语句中涉及多个表,并且属于不同group,打开此开关可以支持此语句执行计划下推来提高性能。

参数类型:SUSET

取值范围:布尔型

  • on表示支持此语句执行计划下推来提高性能。
  • off表示不支持此语句执行计划下推来提高性能。

默认值:off

此参数用于内部运维场景,请勿随意开启。

enable_cbm_tracking

参数说明:当使用roach执行集群的全量和增量备份时需要开启此参数,如果关闭会导致备份失败。

参数类型:SIGHUP

取值范围:布尔型

  • on表示追踪功能开启。
  • off表示追踪功能关闭。

默认值:off

lc_collate

参数说明:报告当前数据库的字符串排序区域设置。

参数类型:INTERNAL(固定参数,用户无法修改此参数,只能查看)

默认值:依赖于集群安装部署时的配置

lc_ctype

参数说明:报告当前数据库的字母类别区域设置。如:哪些字符属于字母,它对应的大写形式是什么。

参数类型:INTERNAL(固定参数,用户无法修改此参数,只能查看)

默认值:依赖于集群安装部署时的配置

max_identifier_length

参数说明:报告当前系统允许的标识符最大长度。

参数类型:INTERNAL(固定参数,用户无法修改此参数,只能查看)

取值范围:整型

默认值:63

server_encoding

参数说明:报告当前数据库的服务端编码字符集。

参数类型:INTERNAL(固定参数,用户无法修改此参数,只能查看)

默认值:在创建数据库的时候决定的。

cstore_insert_mode

参数说明:向HDFS表导入数据时,控制数据的存储位置,涉及导入数据功能的操作都受此参数控制,比如INSERT,UPDATE,COPY,VACUUM FULL等。

参数类型:USERSET

取值范围枚举型

  • AUTO:数据导入的主体部分保存在HDFS存储上,少量数据保存在delta table中。
  • DELTA:所有导入的数据都保存在delta table中。
  • MAIN:所有导入的数据都保存在HDFS存储上。

默认值:auto

该参数也可以在配置文件中指定默认值。

dfs_partition_directory_length

参数说明:在HDFS文件系统上,构造HDFS VALUE分区表的分区目录时,目录名长度的上限值。

参数类型:USERSET

取值范围:92~7999

默认值:512

enable_hadoop_env

参数说明:设置使用Hadoop特性时,是否允许在数据库中创建本地行存表和列存表。

GaussDB(DWS)集群中,集群安装好后,该参数默认设为on。若使用过程中对此参数修改后创建了行存表或者列存表,将导致CN增删、节点替换、升级和扩容失败,并影响数据的可靠性。不推荐用户修改enable_hadoop_env的值。如果数据库中已存在行存表或者列存表,在进行CN增删、节点替换、升级和扩容操作之前,请在技术支持工程师的协助下,修改enable_hadoop_env参数值为false后再执行操作。

GaussDB(DWS)集群中,集群安装好后,该参数默认设为off。以支持本地行列存储和跨集群访问Hadoop特性。不推荐用户调整enable_hadoop_env的值。

参数类型:USERSET

取值范围: 布尔型

  • on/true,表示使用Hadoop特性时,不允许在数据库中创建本地行存表和列存表。
  • off/false,表示使用Hadoop特性时,可以在数据库中创建本地行存表和列存表。

默认值:off

remote_read_mode

参数说明:设置当开启enable_crc_check为on,主DN读取的数据校验失败后是否进行远程读的开关,以及是否采用安全认证方式连接。设置后需要重启集群才能生效。

参数类型:POSTMASTER

取值范围:off,non_authentication,authentication

  • off,表示关闭远程读功能。
  • non_authentication,表示采用非认证的方式连接备DN并获取数据。
  • authentication,表示采用认证方式连接备DN并获取数据,重启集群前在$GAUSSHOME/share/sslcert/grpc/目录下必须存在证书,否则无法启动集群。

默认值:non_authentication

enable_upgrade_merge_lock_mode

参数说明:当该参数设置为on时,通过提升deltamerge内部实现的锁级别,避免和update/delete并发操作时的报错。

参数类型:USERSET

取值范围: 布尔型

  • on,提升deltamerge内部实现的锁级别,并发执行deltamerge和update/delete操作时,一个操作先执行,另一个操作被阻塞,在前一个操作完成后,后一个操作再执行。
  • off,在对HDFS表的delta table的同一行并发执行deltamerge和update/delete操作时,后一个对同一行数据更新的操作会报错退出。

默认值:off

job_queue_processes

参数说明:表示系统可以并发执行的job数目。该参数为postmaster级别,通过gs_guc设置,需要重启gaussdb才能生效。

参数类型:POSTMASTER

取值范围:0~1000

功能:

  • 当job_queue_processes设置为0值,表示不启用定时任务功能,任何job都不会被执行(因为开启定时任务的功能会对系统的性能有影响,有些局点可能不需要定时任务的功能,可以通过设置为0不启用定时任务功能)。
  • 当job_queue_processes为大于0时,表示启用定时任务功能且系统能够并发处理的最大任务数。

启用定时任务功能后,job_scheduler线程会在定时时间间隔轮询pg_jobs系统表,系统设置定时任务检查周期默认为1s。

由于并行运行的任务数太多会消耗更多的系统资源,因此需要设置系统并发处理的任务数,当前并发的任务数达到job_queue_processes时,且此时又有任务到期,那么这些任务本次得不到执行而延期到下一轮询周期。因此,建议用户需要根据每个任务的执行时长合理的设置任务的时间间隔(即submit接口中的interval参数),来避免由于任务执行时间太长而导致下个轮询周期无法正常执行。

注:如果同一时间内并行的job数很多,过小的参数值会导致job等待。而过大的参数值则消耗更多的系统资源,建议设置此参数为100,用户可以根据系统资源情况合理调整。

默认值:10

ngram_gram_size

参数说明:ngram解析器分词的长度。

参数类型:USERSET

取值范围:整型 ,1~4

默认值:2

ngram_grapsymbol_ignore

参数说明:ngram解析器是否忽略图形化字符。

参数类型:USERSET

取值范围:布尔型

  • on表示忽略图形化字符。
  • off表示不忽略图形化字符。

默认值:off

ngram_punctuation_ignore

参数说明:ngram解析器是否忽略标点符号。

参数类型:USERSET

取值范围:布尔型

  • on表示忽略标点符号。
  • off表示不忽略标点符号。

默认值:on

zhparser_dict_in_memory

参数说明:Zhparser解析器是否将字典加载到内存中。

参数类型:POSTMASTER

取值范围:布尔型

  • on表示将字典加载到内存中
  • off表示不将字典加载到内存中

默认值:on

zhparser_extra_dicts

参数说明:为Zhparser解析器加载额外的字典文件。

参数类型:POSTMASTER

取值范围:字符串

默认值:

zhparser_multi_duality

参数说明:Zhparser解析器设定是否将长词内的文字自动以二字分词法聚合。

参数类型:USERSET

取值范围:布尔型

  • on表示将长词内的文字自动以二字分词法聚合。
  • off表示不将长词内的文字自动以二字分词法聚合。

默认值:off

zhparser_multi_short

参数说明:Zhparser解析器分词执行时是否执行针对长词复合切分。

参数类型:USERSET

取值范围:布尔型

  • on表示执行针对长词复合切分。
  • off表示不执行针对长词复合切分。

默认值:on

zhparser_multi_zall

参数说明:Zhparser解析器是否将全部单字单独显示。

参数类型:USERSET

取值范围:布尔型

  • on表示将全部单字单独显示。
  • off表示不将全部单字单独显示。

默认值:off

zhparser_multi_zmain

参数说明:Zhparser解析器是否将重要单字单独显示。

参数类型:USERSET

取值范围:布尔型

  • on表示将重要单字单独显示。
  • off表示不将重要单字单独显示。

默认值:off

zhparser_punctuation_ignore

参数说明:Zhparser解析器分词结果是否忽略所有的标点等特殊符号(不会忽略\r和\n)。

参数类型:USERSET

取值范围:布尔型

  • on:忽略所有的标点等特殊符号。
  • off:不忽略所有的标点等特殊符号。

默认值:on

zhparser_seg_with_duality

参数说明:Zhparser解析器是否将闲散文字自动以二字分词法聚合。

参数类型:USERSET

取值范围:布尔型

  • on表示将闲散文字自动以二字分词法聚合。
  • off表示不将闲散文字自动以二字分词法聚合。

默认值:off

acceleration_with_compute_pool

参数说明:在查询包含OBS时,通过该参数决定查询是否通过计算资源池进行加速。

参数类型:USERSET

取值范围:布尔型

  • on表示包含有OBS的查询在计算资源池可用时,会根据代价评估决定是否通过计算资源池对查询加速。
  • off表示任何查询都不会通过计算资源池进行加速。

默认值:off

max_resource_package

参数说明:云上环境中,加速集群每个DN可同时运行任务的线程数的上限。

参数类型:POSTMASTER

取值范围:0~2147483647

默认值:0

transparent_encrypted_string

参数说明:该参数存储的是透明加密的一个样本串,使用数据库加密密钥加密固定串“TRANS_ENCRYPT_SAMPLE_STRING”后的密文,用来校验二次启动时获取的DEK是否正确。如果校验失败,那么CN、DN将拒绝启动。

参数类型:POSTMASTER

取值范围:字符串,设置为空表示当前集群为非加密集群。

默认值:

请勿手动设置该参数,设置不当将导致集群不可用。

transparent_encrypt_kms_region

参数说明:该参数存储的是当前集群的部署区域,内容要求不可出现RFC3986标准外的字符,最大长度2047字节。

参数类型:POSTMASTER

取值范围:字符串

默认值:

behavior_compat_options

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

参数类型:USERSET

取值范围:字符串

默认值:

  • 当前只支持表1
  • 配置多个兼容性配置项时,相邻配置项用逗号隔开,例如:set behavior_compat_options='end_month_calculate,display_leading_zero';
  • 此参数选项中strict_concat_functions和strict_text_concat_td不能同时设置。
表1 兼容性配置项

兼容性配置项

兼容性行为控制

display_leading_zero

浮点数显示配置项。

  • 不设置此配置项时,对于-1~0和0~1之间的小数,不显示小数点前的0。比如,0.25显示为.25。
  • 设置此配置项时,对于-1~0和0~1之间的小数,显示小数点前的0。比如,0.25显示为0.25。

end_month_calculate

add_months函数计算逻辑配置项。

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

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

compat_analyze_sample

analyze采样行为配置项。

设置此配置项时,会优化analyze的采样行为,主要体现在analyze时全局采样会更精确的控制在3万条左右,更好的控制analyze时Coordinator端的内存消耗,保证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保持一致,否则默认与Oracle保持一致。

unbind_divide_bound

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

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

merge_update_multi

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

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

return_null_string

控制函数lpad()、rpad()、repeat()、regexp_split_to_table()和split_part()的结果为空字符串''的显示配置项。

Teradata兼容模式下,此参数无影响。

oracle兼容模式下,原来输出的空字符串变为输出NULL。

  • 不设置此配置项时,空字符串显示为NULL。
1
2
3
4
5
select length(lpad('123',0,'*')) from dual;
length
--------

(1 row)
  • 设置此配置项时,空字符串显示为''。
1
2
3
4
5
select length(lpad('123',0,'*')) from dual;
length
--------
0
(1 row)

compat_concat_variadic

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

若设置此配置项,当concat函数参数为variadic类型时,保留oracle和Teradata兼容模式下不同的结果形式;否则默认oracle和Teradata兼容模式下结果相同,且与oracle保持一致。

convert_string_digit_to_numeric

控制CHAR类型和INT类型进行二元BOOL运算时类型转换优先级的配置项。

  • 不设置此配置项时,类型转换优先级与PG9.6一致。
  • 设置此配置项时,所有CHAR类型和INT类型的二元BOOL运算均强制转换为NUMERIC类型进行计算。

    设置此配置项后会被影响的CHAR类型包括BPCHAR、VARCHAR、NVARCHAR2、TEXT四种类型,会被影响的INT类型包括INT1、INT2、INT4、INT8四种类型。

注意:

此配置项只对二元BOOL运算生效,例如,INT2>TEXT、INT4=BPCHAR,非BOOL运算不会受到影响,该配置项暂不支持INT>'1.1'这类UNKNOWN类型运算的转换。由于该配置项开启后,CHAR类型与INT类型的BOOL运算会优先转换为NUMERIC类型进行计算,因此会影响数据库计算性能,当JOIN列为受影响的类型组合时,还会影响执行计划。

check_function_conflicts

控制是否检查自定义plpgsql/SQL函数的属性。

  • 不设置此配置项时,不检查自定义函数的IMMUTABLE/STABLE/VOLIATLE属性。
  • 设置此配置项时,会检查自定义函数的IMMUTABLE属性,如果函数中含有表,或者是有STABLE/VOLATILE函数时,在执行时会报错。因为函数中如果有表或者STABLE/VOLATILE函数时,与函数定义中的IMMUTABLE属性冲突,即这种场景下,函数的行为非IMMUTABLE。

例如:设置此参数时,以下场景下会执行报错:

CREATE OR replace FUNCTION sql_immutable (INTEGER)
RETURNS INTEGER AS 'SELECT a+$1 from shipping_schema.t4 where a=1;'
LANGUAGE SQL IMMUTABLE
RETURNS NULL
ON NULL INPUT;
select sql_immutable(1);
ERROR:  IMMUTABLE function cannot contain SQL statements with relation or Non-IMMUTABLE function.
CONTEXT:  SQL function "sql_immutable" during startup
referenced column: sql_immutable

varray_verification

控制是否校验数组长度以及数组类型长度。用于兼容GaussDB(DWS) 8.1.0之前的版本。

若设置此配置项,不会校验数组长度以及数组类型长度。

-- 场景1
CREATE OR REPLACE PROCEDURE varray_verification 
AS 
    TYPE org_varray_type IS varray(5) OF VARCHAR2(2); 
    v_org_varray org_varray_type; 
BEGIN 
    v_org_varray(1) := '111'; --例如赋值已经超过了VARCHAR2(2)的限制,配置该选项后将和历史版本保持一致不进行校验
END; 
/ 
--场景2
 CREATE OR REPLACE PROCEDURE varray_verification_i3_1 
AS 
    TYPE org_varray_type IS varray(2) OF NUMBER(2); 
    v_org_varray org_varray_type; 
BEGIN 
    v_org_varray(3) := 1; --例如赋值已经超过了varray(2)的数组长度限制,配置该选项后将和历史版本保持一致不进行校验
END; 
/ 

strict_concat_functions

控制函数textanycat()和anytextcat()在参数存在空值时,对返回值兼容性的配置项。此参数不能和strict_text_concat_td同时设置。

  • 不设置此配置项时,函数textanycat()和anytextcat()的返回值默认与Oracle保持一致。
  • 设置此配置项时,若函数textanycat()和anytextcat()的参数存在空值,则返回值也为空值,保留与Oracle和Teradata兼容模式下不同的结果。

例如,不设置此配置项时,函数textanycat()和anytextcat()的返回值与Oracle保持一致:

SELECT textanycat('gauss', cast(NULL as BOOLEAN));
 textanycat
------------
 gauss
(1 row)

SELECT 'gauss' || cast(NULL as BOOLEAN); --这种情况下,||运算符会被转换为函数textanycat
 ?column?
----------
 gauss
(1 row)

设置此配置项时,保留与Oracle和Teradata兼容模式下不同的结果:

SELECT textanycat('gauss', cast(NULL as BOOLEAN));
 textanycat
------------

(1 row)

SELECT 'gauss' || cast(NULL as BOOLEAN); --这种情况下,||运算符会被转换为函数textanycat
 ?column?
----------

(1 row)

strict_text_concat_td

Teradata兼容模式下,控制函数textcat()、textanycat()和anytextcat()在参数存在空值时,对返回值兼容性的配置项。此参数不能和strict_concat_functions同时设置。

  • 不设置此配置项时,Teradata兼容模式下函数textcat()、textanycat()和anytextcat()的返回值与GaussDB(DWS) 一致。
  • 设置此配置项时,若Teradata兼容模式下函数textcat()、textanycat()和anytextcat()的参数存在空值,则返回值为空值。

例如,不设置此配置项时,函数textcat()、textanycat()和anytextcat()的返回值与GaussDB(DWS)保持一致:

td_data_compatible_db=# SELECT textcat('abc', NULL);
textcat
---------
abc
(1 row)
td_data_compatible_db=# SELECT 'abc' || NULL; --这种情况下,||运算符会被转换为函数textcat()
?column?
----------
abc
(1 row)

设置此配置项时,若函数textcat()、textanycat()和anytextcat()的返回值有空值,则返回NULL:

td_data_compatible_db=# SELECT textcat('abc', NULL);
textcat
---------

(1 row)
td_data_compatible_db=# SELECT 'abc' || NULL;
?column?
----------

(1 row)

disable_select_truncate_parallel

设置此配置项时,将禁止分区表的不同分区上truncate与DML(如select)的并发,允许分区表上select的FQS(快速下发)。在OLTP场景下分区表上的简单查询较多,并且没有分区表不同分区truncate与DML并发的需求,可以考虑设置此配置项。

bpchar_text_without_rtrim

Teradata兼容模式下,设置此参数时,控制bpchar到text转换保留右侧空格,如果实际长度不足bpchar指定的长度,对其进行补空格操作,兼容Teradata对bpchar字符串的处理风格,例如,设置参数时:

td_compatibility_basic_db=# select length('a'::char(10)::text);
length
--------
10
(1 row)

td_compatibility_basic_db=# select length('a'||'a'::char(10));
length
--------
11
(1 row)

table_skewness_warning_threshold

参数说明:设置用于表倾斜告警的阈值。

参数类型:SUSET

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

默认值:1

table_skewness_warning_rows

参数说明:设置用于表倾斜告警的行数。

参数类型:SUSET

取值范围:整型,0~INT_MAX

默认值:100000

max_cache_partition_num

参数说明:设置扩容重分布过程中列存节省内存模式的分区数目。如果超过分区数据目,则最早缓存的分区将直接写入列存文件中。

参数类型:SIGHUP

取值范围:整型,最小值为0,最大值为32767。

  • 0表示关闭列存节省内存模式。
  • 1~32767表示存分区表最多缓存的分区数目。

默认值:0

该参数用于扩容重分布,合理设置可以缓解列存分区表重分布过程中的内存消耗。但某些分区数据分布非常不均衡的表在重分布完成后,可能会产生较多小CU。如果出现较多小CU,需要通过VACUUM FULL来合并小CU。

auto_process_residualfile

参数说明:控制残留文件记录功能的开关。

参数类型:SIGHUP

取值范围:布尔型

  • on表示打开残留文件记录功能。
  • off表示关闭残留文件记录功能。

默认值: off

enable_view_update

参数说明:用于设置是否开启视图更新功能。

参数类型:POSTMASTER

取值范围:布尔型

  • on表示启用视图更新功能。
  • off表示关闭视图更新功能。

默认值: off

view_independent

参数说明:用于设置是否开启视图与表、函数、同义词的解耦功能。

参数类型:SIGHUP

取值范围:布尔型

  • on表示启用视图解耦功能,存在视图依赖的表、函数、同义词及其他视图可以单独删除(临时表及临时视图除外),关联视图保留但不可用。
  • off表示关闭视图解耦功能,存在视图依赖的表、函数、同义词及其他视图不可以单独删除,仅可使用cascade级联删除。

默认值: off

分享:

    相关文档

    相关产品