开发人员选项
enable_light_colupdate
参数说明:控制是否使用列存轻量化UPDATE。
参数类型:USERSET
取值范围:布尔型
- on表示开启列存轻量化UPDATE。
- off表示关闭列存轻量化UPDATE。
默认值:off
enable_fast_query_shipping
参数说明:控制查询优化器是否使用分布式框架。
参数类型:USERSET
取值范围:布尔型
- on表示执行计划在CN和DN上各自生成。
- off表示使用分布式框架,即执行计划在CN上生成,然后发送到DN中执行。
默认值:on
enable_trigger_shipping
参数说明:控制触发器场景是否允许将触发器下推到DN执行。
参数类型:USERSET
取值范围:布尔型
- on表示允许将触发器下推到DN执行。
- off表示不允许将触发器下推到DN执行,在CN执行。
默认值:on
enable_remotejoin
参数说明:设置是否允许连接操作计划下推到DN执行。
参数类型:USERSET
取值范围:布尔型
- on表示允许连接操作计划下推到DN执行。
- off表示不允许连接操作计划下推到DN执行。
默认值:on
enable_remotegroup
参数说明:设置是否允许group by与aggregates执行计划下推到DN执行。
参数类型:USERSET
取值范围:布尔型
- on表示允许group by与aggregates执行计划下推到DN执行。
- off表示不允许group by与aggregates执行计划下推到DN执行。
默认值:on
enable_remotelimit
参数说明:设置是否允许LIMIT子句执行计划下推到DN执行。
参数类型:USERSET
取值范围:布尔型
- on表示允许LIMIT子句执行计划下推到DN执行。
- off表示不允许LIMIT子句执行计划下推到DN执行。
默认值:on
enable_remotesort
参数说明:设置是否允许ORDER BY子句操作计划下推到DN执行。
参数类型:USERSET
取值范围:布尔型
- on表示允许ORDER BY子句操作计划下推到DN执行。
- off表示不允许ORDER BY子句操作计划下推到DN执行。
默认值:on
enable_join_pseudoconst
参数说明:设置是否允许与伪常数进行join。伪常数是指join两侧的变量都等于同一个常量。
参数类型:USERSET
取值范围:布尔型
- on表示允许与伪常数进行join。
- off表示不允许与伪常数进行join。
默认值:off
cost_model_version
参数说明:控制应用场景中估算时cost使用的模型。该参数的影响范围主要涵盖:表达式distinct估算、HashJoin代价模型、行数估算、重分布时分布键的选择及Aggregate的行数估算等。
参数类型:USERSET
取值范围:0、1、2
- 0表示使用原始的cost估算模型。
- 1表示在0的基础上,使用增强的表达式distinct估算、HashJoin代价模型、行数估算、重分布时分布键的选择及Aggregate的行数估算。
- 2表示在1的基础上,使用随机性更优的analyze采样算法,以提高统计信息准确性。
默认值:1
debug_assertions
参数说明:控制打开各种断言检查。能够协助调试,当遇到奇怪的问题或者崩溃,请把此参数打开,因为它能暴露编程的错误。要使用这个参数,必须在编译GaussDB(DWS)的时候定义宏USE_ASSERT_CHECKING(通过configure选项 --enable-cassert完成)。
参数类型:USERSET
取值范围:布尔型
- on表示打开断言检查。
- off表示不打开断言检查。
当启用断言选项编译GaussDB(DWS)时,debug_assertions缺省值为on 。
默认值:off
distribute_test_param
参数说明:控制分布式测试框架打桩点是否生效。通常开发人员在进行故障注入测试时会在代码中预埋一些打桩点,使用唯一的名称进行标识,使用此参数可以控制代码中预埋的打桩点是否生效。参数采用逗号分隔的三元组形式,分别指定线程级别、测试桩名称和注入故障的错误级别。
参数类型:USERSET
取值范围:字符串,任一个已预埋的测试桩名称。
默认值:-1, default, default
ignore_checksum_failure
参数说明: 设置读取数据时是否忽略校验信息检查失败(但仍然会告警),继续执行。该参数仅在enable_crc_check为on时有效。继续执行可能导致崩溃,传播或隐藏损坏数据,无法从远程节点恢复数据及其他严重问题。不建议用户修改设置。
参数类型:SUSET
取值范围:布尔型
- on表示忽略数据校验错误。
- off表示数据校验错误正常报错。
默认值:off
enable_colstore
参数说明:创建表时,当不指定存储方式时,默认创建为列存表。使用时,各节点值需要保持一致。属于测试参数,禁止用户启用。
参数类型:SUSET
取值范围:布尔型
默认值:off
enable_force_vector_engine
参数说明:对于支持向量化的执行器算子,如果其子节点是非向量化的算子,通过设置此参数为on,强制生成向量化的执行计划。当打开enable_force_vector_engine开关时,无论是行存表、列存表或者是行列混存,如果plantree中不包含不支持向量化的场景,则强制走向量化执行引擎。
参数类型:USERSET
取值范围:布尔型
默认值:off
enable_csqual_pushdown
参数说明:进行查询时,是否要将过滤条件下推,进行Rough Check。
参数类型:SUSET
取值范围:布尔型
- on表示进行查询时,要将过滤条件下推,进行Rough Check。
- off表示进行查询时,不要将过滤条件下推,进行Rough Check。
默认值:on
explain_dna_file
参数说明:指定explain_perf_mode为run,导出的csv信息的目标文件。
参数类型:USERSET
这个参数的取值必须是绝对路径加上.csv格式的文件名。
取值范围:字符串
默认值:NULL
explain_perf_mode
参数说明:此参数用来指定explain的显示格式。
参数类型:USERSET
取值范围:normal、pretty、summary、run
- normal:代表使用默认的打印格式。
- pretty:代表使用GaussDB(DWS)改进后的新显示格式。新的格式层次清晰,计划包含了plan node id,性能分析简单直接。
- summary:是在pretty的基础上增加了对打印信息的分析。
- run:在summary的基础上,将统计的信息输出到csv格式的文件中,以便于进一步分析。
默认值:pretty
join_num_distinct
参数说明:控制应用场景中Join列或表达式的默认distinct值。
参数类型:USERSET
取值范围:双精度浮点型,大于或等于-100,客户端显示小数时可能会有截断。
- 值大于0时,表示使用该值作为默认distinct值。
- 值大于等于-100且小于0时,表示估算默认distinct时使用的百分比。
- 值为0时,表示使用200作为默认distinct值。
默认值:-20
qual_num_distinct
参数说明:控制应用场景中过滤列或表达式的默认distinct值。
参数类型:USERSET
取值范围:双精度浮点型,大于或等于-100,客户端显示小数时可能会有截断。
- 值大于0时,表示使用该值作为默认distinct值。
- 值大于等于-100且小于0时,表示估算默认distinct时使用的百分比。
- 值为0时,表示使用200作为默认distinct值。
默认值:200
trace_notify
参数说明:为LISTEN和NOTIFY命令生成大量调试输出。client_min_messages或log_min_messages级别必须是DEBUG1或者更低时,才能把这些输出分别发送到客户端或者服务器日志。
参数类型:USERSET
取值范围:布尔型
- on表示打开输出功能。
- off表示关闭输出功能。
默认值:off
trace_recovery_messages
参数说明:启用恢复相关调试输出的日志录,否则将不会被记录。该参数允许覆盖正常设置的log_min_messages,但是仅限于特定的消息,这是为了在调试备机中使用。
参数类型:SIGHUP
取值范围:枚举类型,有效值有debug5、debug4、debug3、debug2、debug1、log,取值的详细信息请参见log_min_messages。
默认值:log
- 默认值log表示不影响记录决策。
- 除默认值外,其他值会导致优先级更高的恢复相关调试信息被记录,因为它们有log优先权。对于常见的log_min_messages设置,这会导致无条件地将它们记录到服务器日志上。
trace_sort
参数说明:控制是否在日志中打印排序操作中的资源使用相关信息。这个选项只有在编译GaussDB(DWS)的时候定义了TRACE_SORT宏的时候才可用,不过目前TRACE_SORT是由缺省定义的。
参数类型:USERSET
取值范围:布尔型
- on表示打开控制功能。
- off表示关闭控制功能。
默认值:off
zero_damaged_pages
参数说明:控制检测导致GaussDB(DWS)报告错误的损坏的页头,中止当前事务。
参数类型:SUSET
取值范围:布尔型
- on表示打开控制功能。
- off表示关闭控制功能。
- 设置为on时,系统报告一个警告,把损坏的页面填充为零然后继续处理。该行为会破坏数据,即被损坏页面上的所有行。但是它允许绕开损坏页面然后从表中存在的未损坏页面上继续检索数据行。因此该参数在硬件或者软件错误导致的数据损坏中进行恢复是有作用的。通常不建议该参数设置为on,除非不需要从损坏的页面中恢复数据。
- 对于列存表,会将整个CU跳过然后继续处理。支持的场景包括crc校验失败、magic校验失败以及读取的CU长度错误。
默认值:off
string_hash_compatible
参数说明:该参数用来说明char类型和varchar/text类型的hash值计算方式是否相同,以此来判断进行分布列从char类型到相同值的varchar/text类型转换,数据分布变化时,是否需要进行重分布。
参数类型:POSTMASTER
取值范围:布尔型
- on表示计算方式相同,不需要进行重分布。
- off表示计算方式不同,需要进行重分布。
计算方式的不同主要体现在字符串计算hash值时传入的字节长度上。(如果为char,则会忽略字符串后面空格的长度,如果为text或varchar,则会保留字符串后面空格的长度。)hash值的计算会影响到查询的计算结果,因此此参数一旦设置后,在整个数据库使用过程中不能再对其进行修改,以避免查询错误。
默认值:off
replication_test
参数说明:此参数用于数据复制的内部功能测试。
参数类型:USERSET
取值范围:布尔型
- on表示启用功能测试。
- off表示关闭功能测试。
默认值:off
cost_param
参数说明:该参数用于控制在特定的客户场景中,使用不同的估算方法使得估算值与真实值更接近。此参数可以同时控制多种方法,与某一方法对应的位做与操作,不为0表示该方法被选择。
当cost_param & 1 不为0,表示对于求不等值连接选择率时选择一种改良机制,此方法在自连接(两个相同的表之间连接)的估算中更加准确,V300R002C00版本开始,已弃用cost_param & 1 不为0时的路径,默认选择更优的估算公式;
当cost_param & 2 不为0,表示求多个过滤条件(Filter)的选择率时,选择最小的作为总的选择率,而非两者乘积,此方法在过滤条件的列之间关联性较强时估算更加准确;
当cost_param & 4 不为0,表示在进行stream节点估算时,选用调试模型,该模型不推荐用户使用。
当cost_param & 16不为0,表示在计算两个及以上过滤条件或Join条件的综合选择率时,采用介于完全相关和完全不相关之间的一种模型,过滤条件较多时倾向于相关性较强的模型。
参数类型:USERSET
取值范围:整型,1~INT_MAX
默认值:16
convert_string_to_digit
参数说明:设置隐式转换优先级,是否优先将字符串转为数字。
MySQL兼容模式下,此参数无影响。
参数类型:USERSET
取值范围:布尔型
- on表示优先将字符串转为数字。
- off表示不优先将字符串转为数字。
默认值:on
请谨慎调整该参数,调整该参数会修改内部数据类型转换规则并可能导致不可预期的行为。
nls_timestamp_format
参数说明:设置时间戳默认格式。
参数类型:USERSET
取值范围:字符串
默认值:DD-Mon-YYYY HH:MI:SS.FF AM
enable_partitionwise
参数说明:分区表连接操作是否选择智能算法。
参数类型:USERSET
取值范围:布尔型
- on表示选择智能算法。
- off表示不选择智能算法。
默认值:off
enable_partition_dynamic_pruning
参数说明:分区表扫描是否支持动态剪枝。
参数类型:USERSET
取值范围:布尔型
- on表示分区表扫描开启动态剪枝。
- off表示分区表扫描关闭动态剪枝。
默认值:on
max_user_defined_exception
参数说明:异常最大个数,默认值不可更改。
参数类型:USERSET
取值范围:整型
默认值:1000
datanode_strong_sync
参数说明:目前该参数已废弃,无实际意义。
参数类型:USERSET
取值范围:布尔型
- on表示启用stream节点间强同步。
- off表示不启用stream节点间强同步。
默认值:off
enable_debug_vacuum
参数说明:允许输出一些与VACUUM相关的日志,便于定位VACUUM相关问题。开发人员专用,不建议普通用户使用。
参数类型:SIGHUP
取值范围:布尔型
- on/true表示开启此日志开关。
- off/false表示关闭此日志开关。
默认值:off
enable_global_stats
参数说明:标识当前统计信息模式,为便于进行全局统计信息生成计划和单DN统计信息计划对比使用,默认创建为全局统计信息模式。属于测试参数,禁止用户启用。
参数类型:SUSET
取值范围:布尔型
- on/true表示全局统计信息。
- off/false表示单DN统计信息。
默认值:on
enable_fast_numeric
参数说明:标识是否开启Numeric类型数据运算优化。Numeric数据运算是较为耗时的操作之一,通过将Numeric转化为int64/int128类型,提高Numeric运算的性能。
参数类型:USERSET
取值范围:布尔型
- on/true表示开启Numeric优化。
- off/false表示关闭Numeric优化。
默认值:on
enable_row_fast_numeric
参数说明:标识行存表numeric数据落盘的格式。
参数类型:USERSET
取值范围:布尔型
- on/true表示行存表numeric落盘格式为bigint格式。
- off/false表示行存表numeric落盘格式为原始格式。
参数值设置为on时,建议同步打开enable_force_vector_engine, 可提升大数据集query的查询性能。但相比于原始格式,大概率会占用更多磁盘空间。以TPC-H测试集为例,大约多占7%空间(不同环境参考值可能有差异)。
默认值:off
rewrite_rule
参数说明:标识开启的可选查询重写规则。有部分查询重写规则是可选的,开启它们并不能总是对查询效率有提升效果。在特定的客户场景中,通过此GUC参数对查询重写规则进行设置,使得查询效率最优。
此参数可以控制查询重写规则的组合,比如有多个重写规则:rule1、rule2、rule3、rule4。可以设置:
set rewrite_rule=rule1; --启用查询重写规则rule1 set rewrite_rule=rule2,rule3; --启用查询重写规则rule2和rule3 set rewrite_rule=none; --关闭所有可选查询重写规则
参数类型:USERSET
取值范围:字符串
- none:不使用任何可选查询重写规则
- lazyagg:使用Lazy Agg查询重写规则(消除子查询中的聚集运算)
- magicset : 使用Magic Set查询重写规则(从主查询中下推条件到子查询)
- uniquecheck : 使用Unique Check重写规则(允许目标列不含聚集函数的表达式子链接场景提升,需在子链接按关联列聚集后目标列值唯一才能开启,建议专业调优人员使用)。
- disablerep : 使用禁止复制表的子链接提升规则(针对复制表禁止子链接提升)。
- projection_pushdown:使用Projection Pushdown重写规则。
默认值:magicset
enable_compress_spill
参数说明:标识是否开启下盘压缩功能。
参数类型:USERSET
取值范围:布尔型
- on/true表示开启下盘优化。
- off/false表示关闭下盘优化。
默认值:on
analysis_options
参数说明:通过开启对应选项中所对应的功能选项使用相应的定位功能,包括数据校验,性能统计等,参见取值范围中的选项说明。
参数类型:USERSET
取值范围:字符串
- 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
取值范围:字符串
- summary:显示简略的诊断信息。
- detail:显示详细的诊断信息。
目前这两个参数值只在显示多列统计信息未收集的告警的情况下有差别,summary不显示未收集多列统计信息的告警,detail会显示这类告警。
默认值:summary
hll_default_log2m
参数说明:该参数可以指定hll数据结构桶的个数。桶的个数会影响hll计算distinct值的精度,桶的个数越多,误差越小。误差范围为:[-1.04/2log2m*1/2,+1.04/2log2m*1/2]。
参数类型:USERSET
取值范围:整型,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~5。
默认值:5
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~7。-1表示自动模式,0表示跳过Explicit模式,取1-7表示在基数到达2hll_default_expthresh时切换模式。
默认值:-1
hll_default_sparseon
参数说明:该参数可用来指定是否默认开启Sparse模式。
参数类型:USERSET
取值范围:0,1。0表示默认关闭,1表示默认开启。
默认值:1
hll_max_sparse
参数说明:该参数可以用来指定max_sparse的大小。
参数类型:USERSET
取值范围:整型,-1~INT_MAX
默认值:-1
enable_compress_hll
参数说明:该参数可以用来指定是否对hll开启内存优化模式。
参数类型:USERSET
取值范围:布尔型
- on/true表示对hll开启内存优化模式。
- off/false表示不开启内存优化模式。
默认值:off
udf_memory_limit
参数说明:控制每个CN、DN执行UDF时可用的最大物理内存量。
参数类型:POSTMASTER
取值范围:整型,200*1024~max_process_memory,单位为KB。
默认值:200MB
FencedUDFMemoryLimit
参数说明:控制每个fenced udf worker进程使用的虚拟内存。
参数类型:USERSET
设置建议:不建议设置此参数,可用udf_memory_limit代替。
取值范围:整数,可带单位(KB,MB,GB)。其中0表示不做内存控制。
默认值:0
UDFWorkerMemHardLimit
参数说明:控制fencedUDFMemoryLimit的最大值。
参数类型:POSTMASTER
设置建议:不建议设置此参数,可用udf_memory_limit代替。
取值范围:整数,可带单位(KB,MB,GB)。
默认值:1GB
pljava_vmoptions
参数说明:用户自定义设置PL/Java函数所使用的JVM虚拟机的启动参数。
参数类型:SUSET
取值范围:字符串, 支持:
- JDK8 JVM启动参数
- JDK8 JVM系统属性参数(以–D开头如–Djava.ext.dirs)
- 用户自定义参数(以–D开头,如–Duser.defined.option)
如果用户在pljava_vmoptions中设置参数不满足上述取值范围,会在使用PL/Java语言函数时报错。
默认值:空
javaudf_disable_feature
参数说明:该参数用于控制javaudf行为的细粒度。
参数类型:SIGHUP
取值范围:字符串
- none,不禁用其他细粒度参数中指定的任何行为,当和其他参数一起设置时,none失效。
- all,禁止执行所有javaudf函数,该选项设置后优先级最高。
- extdir,使在第三方路径放置依赖jar包的功能失效。
- hadoop,使hadoop相关功能失效。
- reflection,javaudf函数执行过程中禁用反射(ReflectPermission权限)。
- loadlibrary,javaudf函数执行过程中禁止加载动态库(loadLibrary权限)。
- net,javaudf函数执行过程中禁用网络权限(NetPermission权限)。
- socket,javaudf函数执行过程中禁用socket套接字(SocketPermission权限)。
- security,javaudf函数执行过程中禁止Security配置修改(SecurityPermission权限)。
- classloader,javaudf函数执行过程中禁止自定义classLoder(createClassLoader权限)。
- access_declared_members,javaudf函数执行过程中禁止读取其他类的内部成员(accessDeclaredMembers权限)。
默认值:extdir,hadoop,reflection,loadlibrary,net,socket,security,classloader,access_declared_members
enable_pbe_optimization
参数说明:设置优化器是否对以PBE(Parse Bind Execute)形式执行的语句进行查询计划的优化。
参数类型:SUSET
取值范围:布尔型。
- on表示优化器将优化PBE语句的查询计划。
- off表示不使用优化。
默认值:on
enable_light_proxy
参数说明:设置优化器是否对简单查询在CN上优化执行。
参数类型:SUSET
取值范围:布尔型。
- on表示优化器将优化CN上简单查询的执行。
- off表示不使用优化。
默认值:on
checkpoint_flush_after
参数说明:设置checkpointer线程在连续写多少个磁盘页后会进行异步刷盘操作。GaussDB(DWS)中,磁盘页大小为8KB。
参数类型:SIGHUP
取值范围:整型,0~256 (0表示关闭异步刷盘功能)。例如,取值32,表示checkpointer线程连续写32个磁盘页,即32*8=256KB磁盘空间后会进行异步刷盘。
默认值:32
enable_parallel_ddl
参数说明:控制多CN对同一数据库对象是否能安全的并发执行DDL操作。
参数类型:USERSET
取值范围:布尔型
- on表示可以安全的并发执行DDL操作,不会出现分布式死锁。
- off表示不能安全的并发执行DDL操作,可能会出现分布式死锁。
默认值:on
show_acce_estimate_detail
参数说明:在GaussDB(DWS)集群使用加速集群场景下(即acceleration_with_compute_pool设置为on),控制explain命令是否显示用于评估执行计划下推到加速集群的评估信息。评估信息一般用于运维人员在维护工作中使用,因此该参数默认关闭,此外为了避免这些信息干扰正常的explain信息显示,只有在explain命令的verbose选项打开的情况下才显示评估信息。
参数类型:USERSET
取值范围:布尔型
- on表示可以在explain命令的输出中显示评估信息。
- off表示不在explain命令的输出中显示评估信息。
默认值:off
support_batch_bind
参数说明:控制是否允许通过JDBC、ODBC、Libpq等接口批量绑定和执行PBE形式的语句。
参数类型:SIGHUP
取值范围:布尔型
- on表示使用批量绑定和执行。
- off表示不使用批量绑定和执行。
默认值:on
enable_immediate_interrupt
参数说明:控制是否允许在信号处理函数中立即中断当前语句或会话的执行。
参数类型:SIGHUP
取值范围:布尔型
- on表示允许信号处理函数中立即中断语句或会话的执行。
- off表示不允许信号处理函数中立即中断语句或会话的执行。
默认值:off
请谨慎开启为on,因为允许在信号函数中立即中断语句或会话的执行可能会导致某些关键流程执行被中断,且导致系统内部全局锁无法释放。建议该参数仅在系统调试过程中或规避故障时临时开启。