修改DWS集群GUC参数
集群创建成功后,用户可以根据实际需要修改集群的数据库参数。在DWS管理控制台,您可以设置一些常用的数据库参数,详情请参见修改参数。也可以查看历史参数修改记录,详情请参见查看参数修改历史。单击“导出”按钮可导出集群相关参数配置。如需查看或设置其他数据库参数,您可以通过SQL命令的方式,详情请参见配置GUC参数。
前提条件
只有当集群无运行中的任务时,才能修改参数。
修改参数
- 登录DWS管理控制台。
- 在左侧导航栏中,单击“专属集群 > 集群列表”。
- 在集群列表中找到所需要的集群,单击集群名称,进入“集群详情”页面。
- 单击“参数修改”页签,并在“参数列表”模块修改相应的参数值,然后单击“保存”。
在参数列表上方单击下拉列表,可根据筛选条件(常用配置、功能控制配置、集群内存配置、集群磁盘配置、集群网络配置、SQL调优配置、SQL兼容性配置、所有配置)查找所需修改的参数,其中选择“常用配置”则显示集群所在区域高频次修改的参数前20条结果,如果没有统计数据,则使用自定义的配置。选择“所有配置”为可筛选配置的全集,即可查看所有参数。参数详情请参见参数说明。
单击搜索框,可根据“参数名称”和“是否重启集群”查找相应参数。
图1 修改参数
- 在“修改预览”窗口,确认修改无误后,单击“保存”。
- 用户可根据修改参数所在行的“是否重启集群”列,判断集群是否进行重启操作。


- 若修改参数无需进行重启集群操作,则参数修改后立即生效。
- 若修改参数需进行重启集群操作,参数修改任务下发成功后页面显示修改后的参数值,待集群重启成功后修改的参数值生效;同时集群状态会显示“待重启”并禁用部分运维操作,重启集群后状态会恢复正常。
查看参数修改历史
由于修改参数的操作可能较频繁,如果多次修改后无法确认哪些参数已经生效,可按如下流程检查参数修改记录。
- 登录DWS管理控制台。
- 在左侧导航栏中,单击“专属集群 > 集群列表”。
- 在集群列表中找到所需要的集群,单击集群名称,进入“集群详情”页面。
- 单击“参数修改”页签,并在页面顶部切换到“修改历史”模块。


- 如果修改参数无需进行重启集群操作,则参数修改后立即生效,修改状态为“已同步”。
- 如果修改参数需进行重启集群操作,则修改记录的状态为“需重启生效”,此时单击左侧的下拉展开可以看到具体哪些参数未生效。在重启集群后,该记录的状态会更新为“已同步”。
- 该页面默认查询一段时间之内的修改记录,同时也可以在右上角的输入框中输入要查询的参数,可以查找该参数所有的修改。
导出参数列表
- 登录DWS管理控制台。
- 在左侧导航栏中,单击“专属集群 > 集群列表”。
- 在集群列表中找到所需要的集群,单击集群名称,进入“集群详情”页面。
- 单击“参数修改”页签,并在页面顶部单击“导出”按钮。可导出集群相关配置参数。图2 导出参数配置

功能控制配置参数说明
参数名称 | 参数描述 | 取值范围 |
|---|---|---|
audit_enabled | 控制审计进程的开启和关闭。审计进程开启后,将从管道读取后台进程写入的审计信息,并写入审计文件。 | on或者off |
audit_space_limit | 审计文件占用的磁盘空间总量。单位为千字节。 | 1,024 ~ 1,073,741,824 |
autoanalyze | 标识是否允许在生成计划的时候,对于“统计信息完全缺失”或“修改量达到analyze阈值”的表进行统计信息自动收集,当前不支持对外表触发autoanalyze,不支持对带有“ON COMMIT [DELETE ROWS|DROP]”选项的临时表触发autoanalyze,如需收集,需用户手动执行analyze操作。如果在auto analyze某个表的过程中数据库发生异常,当数据库正常运行之后再执行语句有可能仍提示需要收集此表的统计信息。此时需要用户对该表手动执行一次analyze操作,以同步统计信息数据。 | on或者off |
autovacuum_max_workers | 设置能同时运行的自动清理线程的最大数量。其中0表示不会自动进行autovacuum。 | 0 ~ 128 |
autovacuum_max_workers_hstore | 设置hstore表automerge的线程数量,该值不能大于autovacuum_max_workers。 修改本参数需要同步调整autovacuum_max_workers为原值加上autovacuum_max_workers_hstore的大小。 | 0 ~ 128 |
autovacuum_naptime | 设置两次自动清理操作的时间间隔。单位:秒。 | 1 ~ 2,147,483 |
autovacuum_vacuum_cost_delay | 设置在自动VACUUM操作里使用的开销延迟数值。 | -1 ~ 100 |
behavior_compat_options | 数据库兼容性行为配置项,该参数的值由若干个配置项用逗号隔开构成。此参数选项中strict_concat_functions和strict_text_concat_td不能同时设置。 | - |
checkpoint_segments | 设置周期内所保留的最少WAL日志段文件数量。每个日志文件大小为16MB。 | 1 ~ 2,147,483,646 |
ddl_lock_timeout | 通过该参数单独指定阻塞DDL语句锁等待的时间,当申请的锁等待时间超过设定值时,系统会报错。 | 0 ~ 2,147,483,647 |
enable_resource_record | 是否开启资源记录功能。 | on或者off |
enable_resource_track | 是否开启资源监控功能。 | on或者off |
enable_track_record_subsql | 设置是否开启子语句记录归档功能。开启时,存储过程、匿名块内部的子语句会被记录归档到相应的INFO表(GS_WLM_SESSION_INFO)。此参数为会话级参数,可在与CN的连接会话中设置生效,仅影响该会话连接中的语句;也可在CN和DN上同时设置,能全局生效。 | on或者off |
enable_user_metric_persistent | 设置是否开启用户历史资源监控转存功能。开启时,对于PG_TOTAL_USER_RESOURCE_INFO视图中数据,会定期采样保存到PG_WLM_USER_RESOURCE_HISTORY系统表中。 | on或者off |
enable_view_update | 用于设置是否开启视图更新功能。 | on或者off |
extra_float_digits | 调整浮点值显示的数据位数,浮点类型包括float4、float8 以及几何数据类型。参数值加在标准的数据位数上(FLT_DIG或DBL_DIG中合适的)。 | -15 ~ 3 |
failed_login_attempts | 输入密码错误的次数达到该参数所设置的值时,账户将会被自动锁定。配置为0时表示不限制密码输入错误的次数。 | 0 ~ 1,000 |
instr_unique_sql_count | 控制是否收集Unique SQL,以及收集数量限制。 | 0 ~ 2,147,483,647 |
job_queue_processes | 表示系统可以并发执行的job数目。该参数为postmaster级别,通过gs_guc设置,需要重启gaussdb才能生效。 | 0 ~ 1,000 |
lockwait_timeout | 控制单个锁的最长等待时间。当申请的锁等待时间超过设定值时,系统会报错。单位:毫秒。 | 0 ~ 2,147,483,647 |
max_active_statements | 设置全局的最大并发数量。此参数只应用到CN,且针对一个CN上的执行作业。设置为-1和0表示对最大并发数不做限制。 | -1 ~ 2,147,483,647 |
max_files_per_node | 限制单个节点上单个SQL打开的文件最大数量。 | -1 ~ 2,147,483,647 |
max_prepared_transactions | 设置可以同时处于“预备”状态的事务的最大数目。增加此参数的值会使DWS比系统默认设置需要更多的System V共享内存。 | 0 ~ 536,870,911 |
max_process_memory_auto_adjust | 设置是否开启max_process_memory参数的自动调整功能。 | on或者off |
object_mtime_record_mode | 用于设置PG_OBJECT系统表中mtime字段的更新行为。
| - |
plog_merge_age | 该参数用于控制性能日志数据输出的周期。 | 0 ~ 2,147,483,647 |
random_function_version | 控制analyze在进行数据采样时选取的random函数版本。 | 0 ~ 1 |
resource_track_cost | 设置对语句进行资源监控的最小执行代价。值为-1时,不进行资源监控。值大于或等于0时,执行语句的代价大于或者等于10并且超过这个参数值就会进行资源监控。 | -1 ~ 2,147,483,647 |
resource_track_duration | 设置资源监控实时视图中记录的语句执行结束后进行归档的最小执行时间,单位为秒。值为0时,资源监控实时视图中记录的所有语句都进行历史信息归档。值大于0时,资源监控实时视图中记录的语句的执行时间超过所设置的值时进行历史信息归档。 | 0 ~ 2,147,483,647 |
resource_track_level | 设置当前会话的资源监控的等级。该参数只有当参数enable_resource_track为on时才有效。
| - |
security_enable_options | 控制安全模式下可以解禁的操作。
| - |
session_timeout | Session闲置超时时间,单位为秒,0表示关闭超时限制。 | 0 ~ 86,400 |
space_once_adjust_num | 空间管控和空间统计功能中,控制慢速构建与细粒度校准操作中每次处理的文件个数阈值。 0表示不启用慢速构建和细粒度校准功能。 文件个数阈值影响数据库资源,建议合理设置。该参数仅8.1.3及以上集群版本支持。 | 0 ~ 2,147,483,647 |
statement_timeout | 当语句执行时间超过该参数设置的时间(从服务器收到命令时开始计时)时,该语句将会报错并退出执行。单位:毫秒。 | 0 ~ 2,147,483,647 |
timezone | 设置显示和解释时间类型数值时使用的时区。 | - |
topsql_retention_time | 设置历史TopSQL中gs_wlm_session_info和gs_wlm_operator_info表中数据的保存时间,单位为天。设置此GUC参数启用数据保存功能前,请先清理gs_wlm_session_info和gs_wlm_operator_info表中的数据。
| 0 ~ 3,650 |
user_metric_retention_time | 设置用户历史资源监控数据的保存天数。该参数仅在enable_user_metric_persistent为on时有效。 | 0 ~ 3,650 |
view_independent | 用于设置是否开启视图与表、函数、同义词的解耦功能。基表恢复后目前已支持自动关联重建。 | on或者off |
wlm_memory_feedback_adjust | 是否启用动态负载管理的内存负反馈。参数值格式如下所示:
| on或者off |
enable_generate_plan_hash | 设置是否生成plan hash hint_option:设置绑定outline和手工outline生效优先级。当存在手动hint和plan management的hint时,hint生效的优先原则。该参数仅存算分离的9.1.0及以上集群版本支持。 | on或者off |
turbo_engine_version | 控制执行器是否可以走turbo引擎。0代表关闭,3代表所有算子尽可能走turbo引擎。该参数仅存算分离的9.1.0及以上集群版本支持。 | 0 ~ 3 |
analyze_predicate_column_threshold | 控制开启谓词列analyze。等于0则关闭谓词列收集功能;大于0代表开启谓词列收集功能,且只针对表列数大于等于此值的进行收集,该参数开放主要是提升大表性能。该参数仅存算分离的9.1.0及以上集群版本支持。 | 0 ~ 10,000 |
syscache_clean_policy | 控制syscache内存的清理策略。 | [0,1],[0,1],[0,2147483647] |
spill_compression | 控制执行器下盘压缩算法。该参数仅存算分离的9.1.0及以上集群版本支持。
| - |
hudi_sync_max_commits | 设置Hudi同步任务同步的最大commits的数量。该参数仅存算分离的9.1.0及以上集群版本支持。 | -1 ~ 2,147,483,647 |
enable_hstore_binlog_table | 用于控制是否可以创建binlog表。该参数仅存算分离的9.1.0及以上集群版本支持。 | on或者off |
binlog_consume_timeout | 用于控制在线缩容或vacuum full binlog表时,循环判断binlog记录是否都被消费的超时时间。该参数仅存算分离的9.1.0及以上集群版本支持。 | 0 ~ 86,400 |
cu_preload_max_distance | 控制列存v3预读加速时对于每个扫描的表允许提前加载的CU_id与当前正在加载CU_id的最大距离。该参数仅存算分离的9.1.0及以上集群版本支持。 | 0 ~ 1,024 |
cu_preload_count | 控制列存v3预读加速时对于每个扫描的表允许提前加载的CU的个数。该参数仅存算分离的9.1.0及以上集群版本支持。 | 0 ~ 10,000 |
fine_dr_consistency_check_mode | 新增细粒度容灾校验一致性的模式。该参数仅存算分离的9.1.0及以上集群版本支持。
| - |
hint_option | 设置绑定outline和手工outline生效优先级。该参数仅存算分离的9.1.0及以上集群版本支持。
| - |
enable_concurrency_scaling | 动态弹性逻辑集群开关。该参数仅存算分离的9.1.0.200及以上集群版本支持。 | on或者off |
concurrency_scaling_max_idle_time | 用于指定弹性VW的最大空闲时间,如果超过则进入弹性VW销毁流程。默认单位是分钟。该参数仅存算分离的9.1.0.200及以上集群版本支持。 | 0 ~ 60 |
concurrency_scaling_limit_per_main_vw | 用于限制每个主VW所能拉起的最大弹性VW的数量。该参数仅存算分离的9.1.0.200及以上集群版本支持。 | 0 ~ 32 |
concurrency_scaling_max_vw_active_statements | 用于指定弹性VW上所能执行的最大并发数。该参数仅存算分离的9.1.0.200及以上集群版本支持。 | 0 ~ 1,000,000 |
concurrency_scaling_max_waiting_statements | 用于指定全局排队队列中,触发拉起弹性VW的弹性作业排队数量,如果大于,则进入申请拉起弹性VW流程。该参数仅存算分离的9.1.0.200及以上集群版本支持。 | 0 ~ 1,000,000 |
server_version | 报告服务器版本号。该参数设置前需联系运维人员评估,错误值可能导致兼容性问题。 | 字符串 |
server_version_num | 报告服务器版本号。该参数设置前需联系运维人员评估,错误值可能导致兼容性问题。 | 整数 |
集群内存配置参数说明
参数名称 | 参数描述 | 取值范围 |
|---|---|---|
comm_usable_memory | 单个DN内TCP代理通信库或SCTP通信库缓存最大可使用内存。单位为千字节。 | 102,400 ~ 1,073,741,823 |
cstore_buffers | 设置列存和OBS、HDFS外表列存格式(orc、parquet、carbondata)所使用的共享缓冲区的大小。单位为千字节。 | 16,384 ~ 1,073,741,823 |
maintenance_work_mem | 设置在维护性操作(比如VACUUM、CREATE INDEX、ALTER TABLE ADD FOREIGN KEY等)中可使用的最大的内存。该参数的设置会影响VACUUM、VACUUMFULL、CLUSTER、CREATE INDEX的执行效率。 | 1,024 ~ 2,147,483,647 |
max_process_memory | 设置一个数据库节点可用的最大物理内存。单位:千字节。默认值:物理内存 * 0.8 / (1 + 集群最大主DN数)。 | 2,097,152 ~ 2,147,483,647 |
query_max_mem | 设置执行作业所能够使用的最大内存。如果设置的query_max_mem值大于0,当作业执行时所使用内存超过该值时,将报错退出。 | 0 ~ 2,147,483,647 |
session_history_memory | 设置历史查询视图的内存大小。单位:千字节。 | 10,240 ~ 2,147,483,647 |
shared_buffers | 设置DWS使用的共享内存大小。增加此参数的值会使DWS比系统默认设置需要更多的System V共享内存。单位:8KB。 | 16 ~ 1,073,741,823 |
udf_memory_limit | 控制每个CN、DN执行UDF时可用的最大物理内存量。单位:千字节。 | 204,800 ~ 2,147,483,647 |
work_mem | 设置内部排序操作和Hash表在开始写入临时磁盘文件之前使用的内存大小。ORDER BY,DISTINCT和merge joins都要用到排序操作。Hash表在散列连接、散列为基础的聚集、散列为基础的IN子查询处理中都要用到。对于复杂的查询,可能会同时并发运行好几个排序或者散列操作,每个都可以使用此参数所声明的内存量,不足时会使用临时文件。同样,好几个正在运行的会话可能会同时进行排序操作。因此使用的总内存可能是work_mem的好几倍。 | 64 ~ 2,147,483,647 |
集群磁盘配置参数说明
参数名称 | 参数描述 | 取值范围 |
|---|---|---|
sql_use_spacelimit | 限制单个SQL在单个DN上,触发落盘操作时,落盘文件的空间大小,管控的空间包括普通表、临时表以及中间结果集落盘占用的空间。单位为千字节。其中-1表示没有限制。 | -1 ~ 2,147,483,647 |
temp_file_limit | 限制一个会话中,触发落盘操作时,单个落盘文件的空间大小。例如一次会话中,排序和哈希表使用的临时文件,或者游标占用的临时文件。 | -1 ~ 2,147,483,647 |
集群网络配置参数说明
参数名称 | 参数描述 | 取值范围 |
|---|---|---|
comm_max_stream | TCP代理通信库或SCTP通信库支持的最大并发数据流数。该参数值必须大于并发数*每并发平均stream算子数*(smp的平方)。 | 1 ~ 65,535 |
max_connections | 允许和数据库连接的最大并发连接数。此参数会影响集群的并发能力。 | 100 ~ 262,143 |
max_pool_size | CN的连接池与其它某个CN/DN的最大连接数。 | 1 ~ 65,535 |
SQL调优配置参数说明
参数名称 | 参数描述 | 取值范围 |
|---|---|---|
agg_redistribute_enhancement | 当进行Agg操作时,如果包含多个group by列且均不为分布列,进行重分布时会选择某一group by列进行重分布。本参数控制选择重分布列的策略。 | on或者off |
best_agg_plan | 参数用于控制优化器生成哪种hashagg的计划。 | 0 ~ 3 |
cost_model_version | 控制应用场景中估算时cost使用的模型。该参数的影响范围主要涵盖:表达式distinct估算、HashJoin代价模型、行数估算、重分布时分布键的选择及Aggregate的行数估算等。 | 0 ~ 4 |
default_statistics_target | 默认analyze的比例。 | -100 ~ 10,000 |
enable_codegen | 标识是否允许开启代码生成优化,目前代码生成使用的是LLVM优化。on表示允许开启代码生成优化。off表示不允许开启代码生成优化。 | - |
enable_extrapolation_stats | 标识对于日期类型是否允许基于历史统计信息使用推理估算的逻辑。使用该逻辑对于未及时收集统计信息的表可以增大估算准确的可能性,但也存在错误推理导致估算过大的可能性,需要对于日期类型数据定期插入的场景开启此开关。 | on或者off |
hashjoin_spill_strategy | 选择hashjoin下盘策略:
| 0 ~ 6 |
max_streams_per_query | 控制查询计划中Stream节点的数目。 | -1 ~ 10,000 |
qrw_inlist2join_optmode | 控制是否使用inlist-to-join查询重写。
| - |
query_dop | 用户自定义的查询并行度。[1,64]:打开固定SMP功能,系统会使用固定并行度。[-64,-1]:打开SMP自适应功能,并限制自适应选取的最大并行度。 | -64 ~ 64 |
rewrite_rule | 标识开启的可选查询重写规则。有部分查询重写规则是可选的,开启它们并不能总是对查询效率有提升效果。在特定的客户场景中,通过此GUC参数对查询重写规则进行设置,使得查询效率最优。
| - |
SQL兼容性配置参数说明
参数名称 | 参数描述 | 取值范围 |
|---|---|---|
full_group_by_mode | 用于控制disable_full_group_by_mysql语法开关打开后的两种不同行为。
| - |

