开发人员选项
enable_fast_query_shipping
参数说明:控制查询优化器是否使用分布式框架。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示执行计划在CN和DN上各自生成。
- off表示使用分布式框架,即执行计划在CN上生成,然后发送到DN中执行。
默认值:on
enable_trigger_shipping
参数说明:控制触发器场景是否允许将触发器下推到DN执行。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示允许将触发器下推到DN执行。
- off表示不允许将触发器下推到DN执行,在CN执行。
默认值:on
enable_remotejoin
参数说明:设置是否允许连接操作计划下推到DN执行。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示允许连接操作计划下推到DN执行。
- off表示不允许连接操作计划下推到DN执行。
默认值:on
enable_remotegroup
参数说明:设置是否允许group by与aggregates执行计划下推到DN执行。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示允许group by与aggregates执行计划下推到DN执行。
- off表示不允许group by与aggregates执行计划下推到DN执行。
默认值:on
enable_remotelimit
参数说明:设置是否允许LIMIT子句执行计划下推到DN执行。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示允许LIMIT子句执行计划下推到DN执行。
- off表示不允许LIMIT子句执行计划下推到DN执行。
默认值:on
enable_remotesort
参数说明:设置是否允许ORDER BY子句操作计划下推到DN执行。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示允许ORDER BY子句操作计划下推到DN执行。
- off表示不允许ORDER BY子句操作计划下推到DN执行。
默认值:on
allow_system_table_mods
参数说明:设置是否允许修改系统表的结构。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示允许修改系统表的结构。
- off表示不允许修改系统表的结构。
默认值:off
debug_assertions
参数说明:控制打开各种断言检查。能够协助调试,当遇到奇怪的问题或者崩溃,请把此参数打开,因为它能暴露编程的错误。要使用这个参数,必须在编译GaussDB 200的时候定义宏USE_ASSERT_CHECKING(通过configure选项 --enable-cassert完成)。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示打开断言检查。
- off表示不打开断言检查。
当启用断言选项编译GaussDB 200时,debug_assertions缺省值为on 。
默认值:off
distribute_test_param
参数说明:控制分布式测试框架打桩点是否生效。通常开发人员在进行故障注入测试时会在代码中预埋一些打桩点,使用唯一的名称进行标识,使用此参数可以控制代码中预埋的打桩点是否生效。参数采用逗号分隔的三元组形式,分别指定线程级别、测试桩名称和注入故障的错误级别。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串,任一个已预埋的测试桩名称。
默认值:-1, default, default
enable_crc_check
参数说明:设置是否允许开启数据校验功能。写入表数据时生成校验信息,读取表数据时检查校验信息。不建议用户修改设置。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示允许开启对表数据校验功能。
- off表示不允许开启对表数据校验功能。
默认值:on
ignore_checksum_failure
参数说明: 设置读取数据时是否忽略校验信息检查失败(但仍然会告警),继续执行。该参数仅在enable_crc_check = on时有效。继续执行可能导致崩溃,传播或隐藏损坏数据,无法从远程节点恢复数据及其他严重问题。不建议用户修改设置。
该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示忽略数据校验错误。
- off表示数据校验错误正常报错。
默认值:off
enable_colstore
参数说明:创建表时,当不指定存储方式时,默认创建为列存表。属于测试参数,禁止用户启用。
该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
默认值:off
enable_force_vector_engine
参数说明:对于支持向量化的执行器算子,如果其子节点是非向量化的算子,通过设置此参数为on,强制生成向量化的执行计划。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
默认值:off
enable_csqual_pushdown
参数说明:进行查询时,是否要将过滤条件下推,进行Rough Check。
该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示进行查询时,要将过滤条件下推,进行Rough Check。
- off表示进行查询时,不要将过滤条件下推,进行Rough Check。
默认值:on
explain_dna_file
参数说明:指定explain_perf_mode为run,导出的csv信息的目标文件。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
这个参数的取值必须是绝对路径加上.csv格式的文件名。
取值范围:字符串
默认值:NULL
explain_perf_mode
参数说明:此参数用来指定explain的显示格式。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:normal、pretty、summary、run
- normal:代表使用默认的打印格式。
- pretty:代表使用GaussDB 200改进后的新显示格式。新的格式层次清晰,计划包含了plan node id,性能分析简单直接。
- summary:是在pretty的基础上增加了对打印信息的分析。
- run:在summary的基础上,将统计的信息输出到csv格式的文件中,以便于进一步分析。
默认值:pretty
ignore_system_indexes
参数说明:读取系统表时忽略系统索引(但是修改系统表时依然同时修改索引)。
该参数属于BACKEND类型参数,请参考表1中对应设置方法进行设置。
这个参数在从系统索引被破坏的表中恢复数据的时候非常有用。
取值范围:布尔型
- on表示忽略系统索引。
- off表示不忽略系统索引。
默认值:off
post_auth_delay
参数说明:在认证成功后,延迟指定时间,启动服务器连接。允许调试器附加到启动进程上。
该参数属于BACKEND类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,最小值为0,最大值为INT_MAX/1000000,单位为秒。
默认值:0
pre_auth_delay
参数说明:启动服务器连接后,延迟指定时间,进行认证。允许调试器附加到认证过程上。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,最小值为0~60,单位为秒。
默认值:0
trace_notify
参数说明:为LISTEN和NOTIFY命令生成大量调试输出。client_min_messages或log_min_messages级别必须是DEBUG1或者更低时,才能把这些输出分别发送到客户端或者服务器日志。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示打开输出功能。
- off表示关闭输出功能。
默认值:off
trace_recovery_messages
参数说明:启用恢复相关调试输出的日志录,否则将不会被记录。该参数允许覆盖正常设置的log_min_messages,但是仅限于特定的消息,这是为了在调试备机中使用。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:枚举类型,有效值有debug5、debug4、debug3、debug2、debug1、log,取值的详细信息请参见log_min_messages。
默认值:log
- 默认值log表示不影响记录决策。
- 除默认值外,其他值会导致优先级更高的恢复相关调试信息被记录,因为它们有log优先权。对于常见的log_min_messages设置,这会导致无条件地将它们记录到服务器日志上。
trace_sort
参数说明:控制是否在日志中打印排序操作中的资源使用相关信息。这个选项只有在编译GaussDB 200的时候定义了TRACE_SORT宏的时候才可用,不过目前TRACE_SORT是由缺省定义的。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示打开控制功能。
- off表示关闭控制功能。
默认值:off
zero_damaged_pages
参数说明:控制检测导致GaussDB 200报告错误的损坏的页头,终止当前事务。
该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
设置为on时,会导致系统报告一个警告,把损坏的页面填充为零然后继续处理。这种行为会破坏数据,也就是所有在已经损坏页面上的行记录。但是它允许绕开坏页面然后从表中尚存的未损坏页面上继续检索数据行。因此它在因为硬件或者软件错误导致的崩溃中进行恢复是很有用的。通常不应该把它设置为on,除非不需要从崩溃的页面中恢复数据。
默认值:off
string_hash_compatible
参数说明:该参数用来说明char类型和varchar/text类型的hash值计算方式是否相同,以此来判断进行分布列从char类型到相同值的varchar/text类型转换,数据分布变化时,是否需要进行重分布。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示计算方式相同,不需要进行重分布。
- off表示计算方式不同,需要进行重分布。
计算方式的不同主要体现在字符串计算hash值时传入的字节长度上。(如果为char,则会忽略字符串后面空格的长度,如果为text或varchar,则会保留字符串后面空格的长度。)hash值的计算会影响到查询的计算结果,因此此参数一旦设置后,在整个数据库使用过程中不能再对其进行修改,以避免查询错误。
默认值:off
replication_test
参数说明:此参数用于数据复制的内部功能测试。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示启用功能测试。
- off表示关闭功能测试。
默认值:off
cost_param
参数说明:该参数用于控制在特定的客户场景中,使用不同的估算方法使得估算值与真实值更接近。此参数可以同时控制多种方法,与某一方法对应的位做与操作,不为0表示该方法被选择。
当cost_param & 1 不为0,表示对于求不等值连接选择率时选择一种改良机制,此方法在自连接(两个相同的表之间连接)的估算中更加准确,6.5.0版本开始,已弃用cost_param & 1 不为0时的路径,默认选择更优的估算公式;
当cost_param & 2 不为0,表示求多个过滤条件(Filter)的选择率时,选择最小的作为总的选择率,而非两者乘积,此方法在过滤条件的列之间关联性较强时估算更加准确;
当cost_param & 4 不为0,表示在进行stream节点估算时,选用调试模型,该模型不推荐用户使用。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,1~INT_MAX
默认值:0
convert_string_to_digit
参数说明:设置隐式转换优先级,是否优先将字符串转为数字。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示优先将字符串转为数字。
- off表示不优先将字符串转为数字。
默认值:on
请谨慎调整该参数,调整该参数会修改内部数据类型转换规则并可能导致不可预期的行为。
nls_timestamp_format
参数说明:设置时间戳默认格式。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串
默认值:DD-Mon-YYYY HH:MI:SS.FF AM
remotetype
参数说明:设置远程连接类型。
该参数属于BACKEND类型参数,请参考表1中对应设置方法进行设置。
取值范围:枚举类型,有效值有application,coordinator,datanode,gtm,gtmproxy,internaltool,gtmtool,NULL。
默认值:application
enable_partitionwise
参数说明:分区表连接操作是否选择智能算法。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示选择智能算法。
- off表示不选择智能算法。
默认值:off
max_function_args
参数说明:函数参数最大个数。
该参数属于INTERNAL类型参数,为固定参数,用户无法修改此参数,只能查看。
取值范围:整型
默认值:666
max_user_defined_exception
参数说明:异常最大个数,默认值不可更改。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型
默认值:1000
datanode_strong_sync
参数说明:目前该参数已废弃,无实际意义。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示启用stream节点间强同步。
- off表示不启用stream节点间强同步。
默认值:off
enable_debug_vacuum
参数说明:允许输出一些与VACUUM相关的日志,便于定位VACUUM相关问题。开发人员专用,不建议普通用户使用。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on/true表示开启此日志开关。
- off/false表示关闭此日志开关。
默认值:off
enable_global_stats
参数说明:标识当前统计信息模式,为便于进行全局统计信息生成计划和单DN统计信息计划对比使用,默认创建为全局统计信息模式。属于测试参数,禁止用户启用。
该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on/true表示全局统计信息。
- off/false表示单DN统计信息。
默认值:on
enable_fast_numeric
参数说明:标识是否开启Numeric类型数据运算优化。Numeric数据运算是较为耗时的操作之一,通过将Numeric转化为int64/int128类型,提高Numeric运算的性能。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on/true表示开启Numeric优化。
- off/false表示关闭Numeric优化。
默认值:on
rewrite_rule
参数说明:标识开启的可选查询重写规则。有部分查询重写规则是可选的,开启它们并不能总是对查询效率有提升效果。在特定的客户场景中,通过此GUC参数对查询重写规则进行设置,使得查询效率最优。
此参数可以控制查询重写规则的组合,比如有多个重写规则:rule1、rule2、rule3、rule4。可以设置:
set rewrite_rule=rule1; --启用查询重写规则rule1 set rewrite_rule=rule2,rule3; --启用查询重写规则rule2和rule3 set rewrite_rule=none; --关闭所有可选查询重写规则
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串
- none:不使用任何可选查询重写规则
- lazyagg:使用Lazy Agg查询重写规则(消除子查询中的聚集运算)
- magicset : 使用Magic Set查询重写规则(从主查询中下推条件到子查询)
默认值:magicset
enable_compress_spill
参数说明:标识是否开启下盘压缩功能。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on/true表示开启下盘优化。
- off/false表示关闭下盘优化。
默认值:on
analysis_options
参数说明:通过开启对应选项中所对应的功能选项使用相应的定位功能,包括数据校验,性能统计等,参见取值范围中的选项说明。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串
- LLVM_COMPILE表示在explain performance显示界面中显示每个线程的codegen编译时间。
- HASH_CONFLICT表示在DN进程的pg_log目录中的log日志中显示hash表的统计信息,包括hash表大小,hash链长,hash冲突情况。
- STREAM_DATA_CHECK表示对网络传输前后的数据进行CRC校验。
默认值:off(ALL),不开启任何定位功能。
resource_track_log
参数说明:控制自诊断的日志级别。目前仅对多列统计信息进行控制。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串
- summary:显示简略的诊断信息。
- detail:显示详细的诊断信息。
目前这两个参数值只在显示多列统计信息未收集的告警的情况下有差别,summary不显示未收集多列统计信息的告警,detail会显示这类告警。
默认值:summary
hll_default_log2m
参数说明:该参数可以指定hll数据结构桶的个数。桶的个数会影响hll计算distinct值的精度,桶的个数越多,误差越小。误差范围为:[-1.04/2log2m*1/2,+1.04/2log2m*1/2]。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,10~16。
默认值:11
hll_default_regwidth
参数说明:该参数可以指定hll数据结构每个桶的位数,该值越大,hll所占内存越高。hll_default_regwidth和hll_default_log2m可以决定当前hll能够计算的最大distinct value。具体对应关系可以参见表1 hll_default_log2m和hll_default_regwidth与当前能计算的最大distinct value值的关系。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,1~5。
默认值:5
表1 hll_default_log2m和hll_default_regwidth与当前能计算的最大distinct value值的关系 log2m
regwidth = 1
regwidth = 2
regwidth = 3
regwidth = 4
regwidth = 5
10
7.4e+02
3.0e+03
4.7e+04
1.2e+07
7.9e+11
11
1.5e+03
5.9e+03
9.5e+04
2.4e+07
1.6e+12
12
3.0e+03
1.2e+04
1.9e+05
4.8e+07
3.2e+12
13
5.9e+03
2.4e+04
3.8e+05
9.7e+07
6.3e+12
14
1.2e+04
4.7e+04
7.6e+05
1.9e+08
1.3e+13
15
2.4e+04
9.5e+04
1.5e+06
3.9e+08
2.5e+13
hll_default_expthresh
参数说明:该参数可以用来设置从Explicit模式到Sparse模式的默认阈值大小。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,-1~7。-1表示自动模式,0表示跳过Explicit模式,取1-7表示在基数到达2hll_default_expthresh时切换模式。
默认值:-1
hll_default_sparseon
参数说明:该参数可用来指定是否默认开启Sparse模式。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:0,1。0表示默认关闭,1表示默认开启。
默认值:1
hll_max_sparse
参数说明:该参数可以用来指定max_sparse的大小。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,-1~INT_MAX
默认值:-1
enable_compress_hll
参数说明:该参数可以用来指定是否对hll开启内存优化模式。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on/true表示对hll开启内存优化模式。
- off/false表示不开启内存优化模式。
默认值:off
udf_memory_limit
参数说明:控制每个CN、DN执行UDF时可用的最大物理内存量。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,200*1024~max_process_memory,单位为KB。
默认值:200MB
FencedUDFMemoryLimit
参数说明:控制每个fenced udf worker进程使用的虚拟内存。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
设置建议:不建议设置此参数,可用udf_memory_limit代替。详细内容请参见PL/Java语言函数。
取值范围:整数,可带单位(KB,MB,GB)。其中0表示不做内存控制。
默认值:0
UDFWorkerMemHardLimit
参数说明:控制fencedUDFMemoryLimit的最大值。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
设置建议:不建议设置此参数,可用udf_memory_limit代替。详细内容请参见PL/Java语言函数。
取值范围:整数,可带单位(KB,MB,GB)。
默认值:1GB
pljava_vmoptions
参数说明:用户自定义设置PL/Java函数所使用的JVM虚拟机的启动参数。
该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串, 支持:
- JDK8 JVM启动参数
- JDK8 JVM系统属性参数(以–D开头如–Djava.ext.dirs)
- -Dhadoop.home.dir(用于指定Hadoop环境,请参考使用HDFS)
- 用户自定义参数(以–D开头,如–Duser.defined.option)
如果用户在pljava_vmoptions中设置参数不满足上述取值范围,会在使用PL/Java语言函数时报错。此参数的详细说明参见PL/Java语言函数。
默认值:空
enable_pbe_optimization
参数说明:设置优化器是否对以PBE(Parse Bind Execute)形式执行的语句进行查询计划的优化。
该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型。
- on表示优化器将优化PBE语句的查询计划。
- off表示不使用优化。
默认值:on
enable_light_proxy
参数说明:设置优化器是否对简单查询在CN上优化执行。
该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型。
- on表示优化器将优化CN上简单查询的执行。
- off表示不使用优化。
默认值:on
checkpoint_flush_after
参数说明:设置checkpointer线程在连续写多少个磁盘页后会进行异步刷盘操作。GaussDB 200中,磁盘页大小为8KB。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0~256 (0表示关闭异步刷盘功能)。例如,取值32,表示checkpointer线程连续写32个磁盘页,即32*8=256KB磁盘空间后会进行异步刷盘。
默认值:32
bgwriter_flush_after
参数说明:设置background writer线程在连续写多少个磁盘页后会进行异步刷盘操作。GaussDB 200中,磁盘页大小为8KB。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0~256 (0表示关闭异步刷盘功能)。例如,取值64,表示background writer线程连续写64个磁盘页,即64*8=512KB磁盘空间后会进行异步刷盘。
默认值:64
backend_flush_after
参数说明:设置backend线程在连续写多少个磁盘页后会产生异步刷盘操作。GaussDB 200中,磁盘页大小为8KB。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0~256 (0表示关闭异步刷盘功能)。例如,取值64,表示backend线程连续写64个磁盘页,即64*8=512KB磁盘空间后会进行异步刷盘。
默认值:0
enable_parallel_ddl
参数说明:控制多CN对同一数据库对象是否能安全的并发执行DDL操作。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示可以安全的并发执行DDL操作,不会出现分布式死锁。
- off表示不能安全的并发执行DDL操作,可能会出现分布式死锁。
默认值:on
enable_agg_pushdown_for_ca
参数说明:在协同分析特性中,该参数控制是否将ForeignScan算子之上的Agg算子转化为Remote SQL发送给远端集群。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示将ForeignScan之上的Agg算子转化为Remote SQL。
- off表示只将ForeignScan算子转化为Remote SQL。
默认值:on
support_batch_bind
参数说明:控制是否允许通过JDBC、ODBC、Libpq等接口批量绑定和执行PBE形式的语句。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示使用批量绑定和执行。
- off表示不使用批量绑定和执行。
默认值:on
查看更多:华为GaussDB 200 GUC参数说明