华为云用户手册

  • hashagg_table_size 参数说明:用于设置执行HASH JOIN操作时HASH表的大小。 参数类型:整型 参数单位:无 取值范围:0 ~ 1073741823,其中0表示数据库将根据需要自动调整HASH表的大小。 默认值:0 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。在实际应用中,如果遇到特定的查询场景,比如处理大量数据的聚合操作,可能需要手动调整此参数以优化性能。 设置不当的风险与影响:增加HASH表的大小可以减少HASH AGG操作中的磁盘I/O,因为更多的数据可以保留在内存中。然而,如果设置HASH表大小过大,可能会占用过多内存,导致内存不足。如果设置过小,可能无法有效地利用内存,导致更多的磁盘I/O操作,从而降低查询速度。
  • llvm_max_memory 参数说明:此参数设置Codegen编译产生的IR(包括缓存的和正在使用的)所占用的最大内存。Codegen使用的内存不采用预占的方式申请,属于max_dynamic_memory的一部分,且受llvm_max_memory参数的限制。 参数类型:整型 参数单位:kB 取值范围:0 ~ 2147483647,超过设定值则不再使用Codegen执行逻辑,降级为原有递归执行逻辑。当到达该上限触发执行降级后,调小llvm_max_memory的值无法立即释放多余IR所占用的内存,实际IR所占用的内存随着对应的SQL执行完毕后释放。 默认值:131072(即128MB) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。例如,设置为100,不带单位,表示100kB;设置为16MB,带单位,表示16MB。取值如果要带单位,必须为kB、MB、GB。 设置建议:推荐使用默认值,当系统视图pv_total_memory_detail中llvm_used_memory项到达默认值上限且业务的性能瓶颈在表达式执行流程时,再做修改。 设置不当的风险与影响: 最大占用内存如果设置过小,则易使系统不再使用Codegen执行逻辑,影响功能使用。 最大占用内存如果设置过大,可能会造成LLVM的编译过多占用其他线程的资源,造成系统整体性能下降。
  • costbased_rewrite_rule_max_iterations 参数说明:执行的SQL在计划生成阶段时,如果对同一规则中满足做代价评估的条件数超过该参数的取值,则对本次请求中超过阈值的条件关闭基于代价的评估策略,转化为基于规则的改写策略。当查询改写阶段开启基于代价的评估策略后该参数生效。 参数类型:整型 参数单位:无 取值范围:0 ~ 1000 默认值:10 该参数受GUC参数costbased_rewrite_rule影响,当costbased_rewrite_rule值不为none时,该参数生效。 如果设置该参数值为0,表示对当前SQL关闭基于代价的改写策略。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:可根据实际业务需求评估调整,当该值设置过大或过小时都可能带来额外的性能开销,影响最终的查询性能。
  • enable_global_plancache 参数说明:设置是否对PBE查询和存储过程中语句的执行计划进行缓存共享,开启该功能可以节省高并发下CN和DN上的内存使用。 在打开enable_global_plancache的情况下,为保证GPC生效,默认local_syscache_threshold不小于16MB。即如果当前local_syscache_threshold小于16MB,则设置为16MB,如大于16MB,则不改变。 参数类型:布尔型 参数单位:无 取值范围: on:表示对PBE查询和存储过程中语句的执行计划进行缓存共享。 off:表示不共享。 默认值:off 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。该参数在CN和DN上必须保持一致。 设置不当的风险与影响:CN和DN上该参数设置不一致会使得CN下发给DN的报文不匹配,从而导致报错等问题。
  • enable_gpc_grayrelease_mode 参数说明:分布式集群下,开启GPC需要重启集群。如果需要在不重启集群的情况下开启GPC,需要用enable_gpc_grayrelease_mode控制滚动开启GPC或关闭GPC。 分布式集群上操作方式。 开启GPC: 在所有DN节点开启enable_gpc_grayrelease_mode。 在所有CN节点开启enable_gpc_grayrelease_mode。 开启GPC参数,由于GPC是POSTMASTER参数,需要先reload参数,之后轮询kill节点,使重新拉起的节点上GPC生效。 关闭GPC: 首先确定enable_gpc_grayrelease_mode是on的状态,reload关闭GPC参数,然后轮询kill节点,使重新拉起的节点上GPC生效。 在所有CN节点关闭enable_gpc_grayrelease_mode。 在所有DN节点关闭enable_gpc_grayrelease_mode。 参数类型:布尔型 参数单位:无 取值范围: on:滚动开启GPC。 off:关闭GPC。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:此参数打开会影响pbe报文收发逻辑,需严格按照参数说明指定顺序设置,避免不合理报错。
  • costbased_rewrite_rule_timeout 参数说明:执行的SQL在计划生成阶段时,如果使用各规则做代价评估的整体时间超过该参数设置的超时时间,则对本次请求后续流程关闭基于代价的评估策略,转化为基于规则的改写策略。当查询改写阶段开启基于代价的评估策略后该参数生效。 参数类型:整型 参数单位:毫秒(ms) 取值范围:-1 ~ 300000 默认值:-1 该参数受GUC参数costbased_rewrite_rule影响,当costbased_rewrite_rule值不为none时,该参数生效。 如果设置该参数值为0,表示对当前SQL关闭基于代价的改写策略。 如果设置该参数值为-1,表示对当前SQL关闭超时时间控制。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:可根据实际业务需求评估调整,当该值设置过大或过小时都可能带来额外的性能开销,影响最终的查询性能。
  • gpc_clean_timeout 参数说明:本参数用于控制不使用的共享计划的保留时间。在开启enable_global_plancache的情况下,如果共享计划列表里的计划超过gpc_clean_timeout的时间没有被使用,则会被清理掉。 参数类型:整型 参数单位:秒(s) 取值范围:300 ~ 86400 默认值:1800(即30min) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。例如,设置为300,不带单位,表示300s;设置为30min,带单位,表示30min。取值如果要带单位,必须为s、min、h、d。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过大可能导致GPC占用内存过多,建议充分测试后设置合理值。
  • enable_pbe_optimization 参数说明:设置优化器是否对以PBE(Parse Bind Execute)形式执行的语句进行查询计划的优化,优化原理是使FQS选择gplan计划。 参数类型:布尔型 参数单位:无 取值范围: on:表示优化器将优化PBE语句的查询计划,在FQS下选择gplan。 off:表示不使用优化。 默认值:on 设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值,在不希望FQS选择gplan时可设置为off。 设置不当的风险与影响:关闭可能会导致某些场景走cplan。
  • enable_light_proxy 参数说明:设置优化器是否对CN上简单查询的执行进行优化,应用端和内核端字符集不匹配时,该参数不生效,建议建库时将字符集设为UTF8。 参数类型:布尔型 参数单位:无 取值范围: on:表示优化器将优化CN上简单查询的执行。 off:表示不使用优化。 默认值:on 设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:关闭后可能会导致简单查询执行压力集中在CN上。
  • enable_stream_pbe 参数说明:设置优化器在数据节点上是否对STREAM分布式计划使用缓存执行计划的优化。 参数类型:布尔型 参数单位:无 取值范围: on:表示优化器在数据节点上对STREAM分布式计划使用缓存执行计划的优化。 off:表示不使用优化。 默认值:on 设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:关闭后可能会增加生成计划的开销。
  • enable_opfusion 参数说明:控制是否对简单查询进行查询优化。 该开关优化DN的查询性能,可以设置max_datanode_for_plan查看一个查询DN的执行计划,如果DN的执行计划中带有[Bypass]标识则代表该查询在该DN可以查询优化。 简单查询限制如下: 只支持indexscan和indexonlyscan,且全部WHERE语句的过滤条件都在索引上。 只支持单表增删改查,不支持join、using。 只支持行存表,不支持分区表,表不支持有触发器。 不支持active sql、QPS等信息统计特性。 不支持正在扩容和缩容的表。 不支持查询或者修改系统列。 只支持简单SELECT语句,例如: SELECT c3 FROM t1 WHERE c1 = ? and c2 =10; 仅可以查询目标表的列,c1和c2列为索引列,后边可以是常量或者参数,可以使用 for update。 只支持简单INSERT语句,例如: INSERT INTO t1 VALUES (?,10,?); 仅支持一个VALUES,VALUES里面的类型可以是常量和参数,不支持returning。 只支持简单DELETE语句,例如: DELETE FROM t1 WHERE c1 = ? and c2 = 10; c1和c2列为索引列,后边可以是常量或者参数。 只支持简单UPDATE语句,例如: UPDATE t1 SET c3 = c3+? WHERE c1 = ? and c2 = 10; c3列修改的值可以是常量和参数,也可以是一个简单的表达式,c1和c2列为索引列,后边可以是常量或者参数。 参数类型:布尔型 参数单位:无 取值范围: on:表示使用。 off:表示不使用。 默认值:on 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:关闭有可能导致查询性能劣化。
  • analysis_options 参数说明:通过开启对应选项使用相应的定位功能,包括数据校验,性能统计等,具体参见取值范围中的描述。 参数类型:字符串 参数单位:无 取值范围: 该参数每次设置将会通过集合操作的方式对当前值做修改: gaussdb=# show analysis_options; analysis_options ------------------------------------------------------------ ALL,on(),off(LLVM_COMPILE,HASH_CONFLICT,STREAM_DATA_CHECK) (1 row) gaussdb=# SET analysis_options = 'on(LLVM_COMPILE)'; SET gaussdb=# show analysis_options; analysis_options ----------------------------------------------------------- ALL,on(LLVM_COMPILE),off(HASH_CONFLICT,STREAM_DATA_CHECK) (1 row) gaussdb=# SET analysis_options = 'on(HASH_CONFLICT)'; SET gaussdb=# show analysis_options; analysis_options ----------------------------------------------------------- ALL,on(LLVM_COMPILE,HASH_CONFLICT),off(STREAM_DATA_CHECK) (1 row) gaussdb=# SET analysis_options = 'off(ALL)'; SET gaussdb=# show analysis_options; analysis_options ------------------------------------------------------------ ALL,on(),off(LLVM_COMPILE,HASH_CONFLICT,STREAM_DATA_CHECK) (1 row) LLVM_COMPILE:表示在explain performance显示界面中显示每个线程的codegen编译时间。 HASH_CONFLICT:表示在DN进程的gs_log目录的log日志中显示hash表的统计信息,包括hash表大小、hash链长、hash冲突情况。 STREAM_DATA_CHECK:表示对网络传输前后的数据进行CRC校验。 默认值:off(ALL),表示不开启任何定位功能。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:如需手动设置,需要明确预期显示的结果是否符合需求。
  • enable_remotejoin 参数说明:控制是否允许将连接操作计划下推到DN执行。 参数类型:布尔型 参数单位:无 取值范围: on:表示允许将连接操作计划下推到DN执行。 off:表示不允许将连接操作计划下推到DN执行。 默认值:on 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:如果参与JOIN的表数据量很大,这些数据已经根据JOIN条件分散在不同的数据节点上,并且数据节点具备足够的计算资源,可以在本地高效地完成JOIN操作,那么关闭该参数将可能会带来查询性能的下降。
  • enable_remotegroup 参数说明:控制是否允许将group by与aggregates执行计划下推到DN执行。 参数类型:布尔型 参数单位:无 取值范围: on:表示允许将group by与aggregates执行计划下推到DN执行。 off:表示不允许将group by与aggregates执行计划下推到DN执行。 默认值:on 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:如果查询涉及到大量数据的分组,并且数据分布在多个数据节点上,关闭该参数可能会带来查询性能的下降。
  • enable_partitionwise 参数说明:分区表连接操作是否选择智能算法。 参数类型:布尔型 参数单位:无 取值范围: on:表示选择智能算法。 off:表示不选择智能算法。 默认值:off 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:打开前确认是否开启SMP,否则可能影响非SMP场景下分区表Join操作的性能。
  • cost_param 参数说明:该参数用于控制在特定的客户场景中,使用不同的估算方法,使得代价模型估算更准确。通过将参数修改为不同的值,选择开启不同的方法。此参数可以同时控制多种方法,每一种方法由不同的数字编号控制,参数取值与方法对应的数字编号做“与”操作的结果不为0时,表示该方法开启。 当cost_param & 1不为0,表示对于求不等值连接选择率时选择一种改良机制,此方法在自连接(两个相同的表之间连接)的估算中更加准确。当前版本已弃用cost_param & 1不为0时的路径,默认选择更优的估算公式。 当cost_param & 2不为0,表示求多个过滤条件(Filter)的选择率时,选择最小的作为总的选择率,而非两者乘积,此方法在过滤条件的列之间关联性较强时估算更加准确。 当cost_param & 4不为0,表示在进行stream节点估算时,选用调试模型,该模型不推荐用户使用。 参数类型:整型 参数单位:无 取值范围:0 ~ 2147483647‬ 默认值:0 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:在明确需要调整选择率的场景后,设置对应参数值。 设置不当的风险与影响:设置不当可能会导致最终的代价估算不符合预期,建议在充分测试后确认应当设置的参数值。
  • enable_rep_table_strict_shipping 参数说明:进行复制表DML操作时,控制在复制表的下推充要条件判断失败时的行为。 参数类型:布尔型 参数单位:无 取值范围: on:表示进行复制表DML操作时,如果对复制表的下推充要条件判断失败,则禁止下推。 off:表示进行复制表DML操作时,如果对复制表的下推充要条件判断失败,不禁止下推,仅在日志中打印提示信息。 默认值:on 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • enable_csqual_pushdown 参数说明:设置进行查询时,是否要将过滤条件下推,进行Rough Check。 参数类型:布尔型 参数单位:无 取值范围: on:表示进行查询时,将过滤条件下推,进行Rough Check。 off:表示进行查询时,不将过滤条件下推,进行Rough Check。 默认值:on 设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:如果查询涉及大量数据的过滤,并且这些数据分布在不同的节点上,关闭过滤条件下推可能会带来性能的下降。
  • explain_perf_mode 参数说明:此参数用来指定explain的显示格式。 参数类型:枚举类型 参数单位:无 取值范围:normal、pretty、summary、run normal:代表使用默认的打印格式。 pretty:代表使用 GaussDB 改进后的新显示格式。新的格式层次清晰,计划包含了plan node id,性能分析简单直接。 summary:是在pretty的基础上增加了对打印信息的分析。 run:在summary的基础上,将统计的信息输出到csv格式的文件中,以便于进一步分析。 默认值:pretty pretty模式当前只支持包含stream算子的计划,不支持下发语句到DN节点的计划。因此显示格式会受enable_stream_operator参数影响,当enable_stream_operator设置为off时无法生成包含stream算子的计划。
  • enable_partition_pseudo_predicate 参数说明:在指定分区查询场景下,是否使用伪谓词改写的方式计算指定分区查询的选择率。 参数类型:布尔型 参数单位:无 取值范围: on:表示使用伪谓词改写。 off:表示不使用伪谓词改写。 默认值:off 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • enable_remotelimit 参数说明:控制是否允许将LIMIT子句执行计划下推到DN执行。 参数类型:布尔型 参数单位:无 取值范围: on:表示允许将LIMIT子句执行计划下推到DN执行。 off:表示不允许将LIMIT子句执行计划下推到DN执行。 默认值:on 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:如果查询涉及到对大数据量的快速裁剪,并且数据分布在多个节点上,关闭此参数可能会降低查询性能。
  • enable_remotesort 参数说明:控制是否允许将ORDER BY子句操作计划下推到DN执行。 参数类型:布尔型 参数单位:无 取值范围: on:表示允许将ORDER BY子句操作计划下推到DN执行。 off:表示不允许将ORDER BY子句操作计划下推到DN执行。 默认值:on 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:如果查询涉及到大量数据的排序,并且数据分布在多个数据节点上,关闭该参数可能会带来性能的下降。
  • enable_fast_query_shipping 参数说明:控制查询优化器是否使用分布式框架。 参数类型:布尔型 参数单位:无 取值范围: on:表示执行计划在CN和DN上各自生成。 off:表示使用分布式框架,即执行计划在CN上生成,然后发送到DN中执行。 默认值:on 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:若关闭该参数,可能导致生成的计划不能更高效地利用分布式集群性能,建议打开该参数。
  • cost_model_version 参数说明:此参数用来指定优化器代价模型的版本。可以视作一个保护参数,用来禁用最新的优化器代价模型,保持和旧版本计划一致。 参数类型:整型 参数单位:无 取值范围:0、1、2、3、4、5 0:表示使用最新的cost估算模型。当前版本等价于5。 1:表示使用原始的cost估算模型。 2:表示在1的基础上,使用增强的coalesce表达式估算、hash join代价估算、semi/anti join代价估算。 3:表示在2的基础上,使用边界矫正估计器估算NDV,indexscan的hint可以作用于indexonlyscan。 4:表示在3的基础上,使用分区级统计信息参与代价估算。 5:表示在4的基础上,增强outer join计算Filter的代价估算,使得基于代价的查询重写更加准确;增强计算选择率时对outer join外表的filter条件的计算优化,可用enable_poisson_outer_optimization参数单独控制。 默认值:0 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:数据库升级时,建议和升级前版本保持一致;新安装环境时,建议设置为默认值。 设置不当的风险与影响:改变此参数,可能会导致很多SQL计划的改变,因此修改前请谨慎评估。
  • enable_trigger_shipping 参数说明:控制触发器场景是否允许将触发器下推到DN执行。 参数类型:布尔型 参数单位:无 取值范围: on:表示允许将触发器下推到DN执行。 off:表示不允许将触发器下推到DN执行,在CN执行。 默认值:on 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:若关闭该参数,会将性能负载集中在CN节点,不能最大化利用集群性能,建议打开该参数。
  • max_keep_log_seg 参数说明:流控参数,逻辑复制在DN本地会解析物理日志转换成逻辑日志,当未被解析的物理日志文件数量大于该参数时会触发限流。 参数类型:整型 参数单位:无 取值范围:0 ~ 2147483647。0表示关闭限流功能。 默认值:0 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:根据实际业务需求,判断是否需要进行流控。 设置不当的风险与影响:设置过大,流控一直不触发。
  • logical_replication_dictionary_retention_time 参数说明:GS_TXN_LSN_TIME以及数据字典相关系统表数据保留时间。 参数类型:整型 参数单位:d(天) 取值范围:[1, 3650] 默认值:365 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:根据实际业务需求进行设置。 设置不当的风险与影响:设置过小,会导致指定位点解码的可选区间过小;设置过大,会影响解码性能。
  • enable_logicalrepl_xlog_prune 参数说明:设置是否开启逻辑复制槽强制失效功能。当GUC参数enable_logicalrepl_xlog_prune=on、max_size_for_xlog_retention为非零值时,如果max_size_for_xlog_retention大于0且当前逻辑复制槽导致保留日志的段数(每段日志大小为16MB)超过max_size_for_xlog_retention,或者max_size_for_xlog_retention小于0且磁盘使用率达到(-max_size_for_xlog_retention)/100,则该逻辑复制槽会强制失效,restart_lsn被置为7FFFFFFF/FFFFFFFF,该复制槽不阻塞xlog日志的回收。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启逻辑复制槽强制失效功能。 off:表示关闭逻辑复制槽强制失效功能。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:根据实际业务需要确认是否开启。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • enable_logical_replication_ddl 参数说明:设置逻辑解码是否支持DDL,是否反解析,是否生成日志。 参数类型:布尔型 参数单位:无 取值范围: on:逻辑复制可支持DDL,对DDL执行结果进行反解析,并生成DDL的WAL日志。 off:不支持DDL,不反解析也不生成WAL日志。 默认值:on 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
  • max_cached_tuplebufs 参数说明:逻辑解码时,总元组信息在内存中缓存的数量上限。 参数类型:整型 参数单位:无 取值范围:1~2147483647‬ 默认值:8192 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。建议设置为max_changes_in_memory的两倍以上。 设置不当的风险与影响:设置过大,解码到大事务会占用较多的动态内存;设置过小,解码效率会降低。
共100000条