华为云用户手册

  • session_sequence_cache 参数说明:在当前会话下,一次性交互申请的sequence数值,会话结束会自动丢弃未用完的值。用户在使用sequence大批量导入数据的时候可以通过调大该参数,提高插入速度,增加高并发性能;用户在高并发单条插入数据的时候,将该参数设置为1,减少了sequence的跳变。如对连续性有强要求,需要在创建sequence的时候指定需要的cache,该参数如果大于cache指定的值会自动失效。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:整型,1 ~ 2147483647。 默认值:10 默认值为10是高并发场景下,兼顾单条插入和批量插入的性能会有比较好的表现。
  • plan_cache_mode 参数说明:标识在prepare语句中,选择生成执行计划的策略。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:枚举类型 auto表示按照默认的方式选择custom plan或者generic plan。 force_generic_plan表示强制走generic plan(软解析)。generic plan是指对于prepare语句生成计划,该计划策略会在执行execute语句的时候把参数bind到plan中,然后执行计划。这种方案的优点是每次执行可以省去重复的优化器开销;缺点是当bind参数字段上数据存在倾斜时该计划可能不是最优的,部分bind参数场景下执行性能较差。 force_custom_plan表示强制走custom plan(硬解析)。custom plan是指对于prepare语句,在执行execute的时候,把execute语句中的参数嵌套到语句之后生成的计划。custom plan会根据execute语句中具体的参数生成计划,这种方案的优点是每次都按照具体的参数生成优选计划,执行性能比较好;缺点是每次执行前都需要重新生成计划,存在大量的重复的优化器开销。 此参数只对prepare语句生效,一般用在prepare语句中参数化字段存在比较严重的数据倾斜的场景下。 默认值:auto
  • enable_extrapolation_stats 参数说明:标识对于日期类型是否允许基于历史统计信息使用推理估算的逻辑。使用该逻辑对于未及时收集统计信息的表可以增大估算准确的可能性,但也存在错误推理导致估算过大的可能性,需要对于日期类型数据定期插入的场景开启此开关。该参数属于SUSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:布尔型 on表示允许基于历史统计信息使用推理估算的逻辑。 off表示不允许基于历史统计信息使用推理估算的逻辑。 默认值:off
  • query_dop 参数说明: 用户自定义的查询并行度。该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:整型,-64-64 [1,64]:打开固定SMP功能,系统会使用固定并行度。 0:打开SMP自适应功能,系统会根据资源情况和计划特征动态选取最优并行度。 [-64,-1]:打开SMP自适应功能,并限制自适应选取的最大并行度。 在开启并行查询后,请保证系统CPU、内存、网络、I/O等资源充足,以达到最佳效果。 为了避免用户设置不合理的过大值造成性能劣化,系统会计算出该DN可用最大CPU核数,并以此来作为query_dop的上限。如果用户设置query_dop超过4并且同时超过该上限,那么系统会重置query_dop为该上限值。 默认值:1
  • enable_sonic_hashagg 参数说明:标识是否依据规则约束使用基于面向列的hash表设计的Hash Agg算子。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:布尔型 on表示在满足约束条件时使用基于面向列的hash表设计的Hash Agg算子。 off表示不使用面向列的hash表设计的Hash Agg算子。 在开启enable_sonic_hashagg,且查询达到约束条件使用基于面向列的hash表设计的Hash Agg算子时,查询对应的Hash Agg算子内存使用通常可获得精简。但对于代码生成技术可获得显著性能提升的场景(enable_codegen打开后获得较大性能提升),对应的算子查询性能可能会出现劣化。 开启enable_sonic_hashagg,且查询达到约束条件使用基于面向列的hash表设计的Hash Agg算子时,在Explain Analyze/Performance的执行计划和执行信息中,算子显示为“Sonic Hash Aggregation”,而未达到该约束条件时,算子名称将显示为“Hash Aggregation”,Explain详解请参见详解。 默认值:on
  • enable_fast_numeric 参数说明:标识是否开启Numeric类型数据运算优化。Numeric数据运算是较为耗时的操作之一,通过将Numeric转化为int64/int128类型,提高Numeric运算的性能。 该参数属于SUSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:布尔型 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类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:字符串 none:不使用任何可选查询重写规则。 lazyagg:使用Lazy Agg查询重写规则(消除子查询中的聚集运算)。 magicset:使用Magic Set查询重写规则(从主查询中下推条件到子查询)。 partialpush:使用Partial Push查询重写规则(对于不可下推的语句,下推部分子查询到DN执行,剩余不下推的部分在CN执行)。 uniquecheck:使用Unique Check查询重写规则(提升目标列中无agg的子查询语句,在执行时检查返回行数是否为1行)。 disablerep:使用Disable Replicate查询重写规则(由于复制表提升之后可能劣化,开启此规则之后,禁止复制表的子查询提升)。 intargetlist:使用In Target List查询重写规则(提升目标列中的子查询)。 predpushnormal:使用Predicate Push查询重写规则(下推谓词条件到子查询中,可能会添加BROADCAST算子来支持分布式执行)。 predpushforce:使用Predicate Push查询重写规则(下推谓词条件到子查询中,尽可能的利用索引加速)。 predpush:在predpushnormal和predpushforce中根据代价选择最优计划。 默认值:magicset
  • default_statistics_target 参数说明:为没有用ALTER TABLE SET STATIS TICS 设置字段目标的表设置缺省统计目标。此参数设置为正数是代表统计信息的样本数量,为负数时,代表使用百分比的形式设置统计目标,负数转换为对应的百分比,即-5代表5%。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:整型,-100~10000。 比默认值大的正数数值增加了ANALYZE所需的时间,但是可能会改善优化器的估计质量。 调整此参数可能存在性能劣化的风险,如果某个查询劣化,可以考虑 恢复默认的统计信息。 使用plan hint来调整到之前的查询计划。(详细参见使用Plan Hint进行调优) 当此guc参数设置为负数时,如果计算的采样样本数大于等于总数据量的2%,且用户表的数据量小于1600000时,ANALYZE所需时间相比guc参数为默认值的时间会有所增加。 当此guc参数设置为负数时,则autoanalyze不生效。 默认值:100
  • cost_param 参数说明:该参数用于控制在特定的客户场景中,使用不同的估算方法使得估算值与真实值更接近。此参数可以同时控制多种方法,与某一方法对应的位做与操作,不为0表示该方法被选择。 当cost_param & 1不为0,表示对于求不等值连接选择率时选择一种改良机制,此方法在自连接(两个相同的表之间连接)的估算中更加准确。当前版本已弃用cost_param & 1不为0时的路径,默认选择更优的估算公式。 当cost_param & 2不为0,表示求多个过滤条件(Filter)的选择率时,选择最小的作为总的选择率,而非两者乘积,此方法在过滤条件的列之间关联性较强时估算更加准确。 当cost_param & 4不为0,表示在进行stream节点估算时,选用调试模型,该模型不推荐用户使用。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:整型,0~2147483647‬ 默认值:0
  • enable_global_stats 参数说明:标识当前统计信息模式,区别采用全局统计信息收集模式还是单节点统计信息收集模式,默认创建为采用全局统计信息模式。当关闭该参数时,则默认收集集群第一个节点的统计信息,此时可能会影响生成查询计划的质量,但信息收集性能较优,建议客户谨慎考虑。 该参数属于SUSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:布尔型 on/true表示全局统计信息。 off/false表示单DN统计信息。 默认值:on
  • cursor_tuple_fraction 参数说明:优化器估计游标获取行数在总行数中的占比。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:浮点型,0.0~1.0。 比默认值小的值与使用 “fast start” 为游标规划的值相偏离,从而使得前几行恢复的很快而抓取全部的行需要很长的时间。比默认值大的值加大了总的估计的时间。在最大的值1.0处,像正常的查询一样规划游标,只考虑总的估计时间和传送第一行的时间。 默认值:0.1
  • enable_opfusion 参数说明:控制是否对简单查询进行查询优化。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 该开关是优化DN的查询性能,可以设置max_datanode_for_plan查看一个查询DN的执行计划,如果DN的执行计划中带有[Bypass]标识则代表该查询在该DN可以查询优化。 取值范围:布尔型 on表示使用。 off表示不使用。 默认值:on
  • enable_global_plancache 参数说明:设置是否对PBE查询的执行计划进行缓存共享,开启该功能可以节省高并发下CN和DN上的内存使用。且该参数必须在CN和DN上一致,否则会出现CN下发给DN的报文不匹配从而报错等问题。 该参数属于POSTMASTER类型参数,请参考重设参数中对应设置方法进行设置。 在打开enable_global_plancache的情况下,为保证GPC生效,默认local_syscache_threshold不小于16MB。即如当前local_syscache_threshold小于16MB,则设置为16MB,如大于16MB,则不改变。 取值范围:布尔型。 on表示对PBE查询的执行计划进行缓存共享。 off表示不共享。 默认值:off
  • constraint_exclusion 参数说明:控制查询优化器使用表约束查询的优化。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:枚举类型 on/true/yes/1表示检查所有表的约束。 off/false/no/0表示不检查约束。 partition表示只检查继承的子表和UNION ALL子查询。 当constraint_exclusion为on,优化器用查询条件和表的CHECK约束比较,并且在查询条件和约束冲突的时候忽略对表的扫描。 默认值:partition 目前, constraint_exclusion缺省被打开,通常用来实现表分区。为所有的表打开它时,对于简单的查询强加了额外的规划,并且对简单查询没有什么好处。如果不用分区表,可以关掉它。
  • join_collapse_limit 参数说明:根据得出的列表项数来判断优化器是否执行把除FULL JOINS之外的JOIN构造重写到FROM列表中。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:整型,1~2147483647‬。 设置为1会避免任何JOIN重排。这样就使得查询中指定的连接顺序就是实际的连接顺序。查询优化器并不是总能选取最优的连接顺序,高级用户可以选择暂时把这个变量设置为1,然后指定它们需要的连接顺序。 比默认值小的数值减少规划时间但也降低了执行计划的质量。 默认值:8
  • analysis_options 参数说明:通过开启对应选项中所对应的功能选项使用相应的定位功能,包括数据校验,性能统计等,参见取值范围中的选项说明。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围:字符串 LLVM_COMPILE表示在explain performance显示界面中显示每个线程的codegen编译时间。 HASH_CONFLICT表示在DN进程的pg_log目录中的log日志中显示hash表的统计信息,包括hash表大小,hash链长,hash冲突情况。 STREAM_DATA_CHECK表示对网络传输前后的数据进行CRC校验。 默认值:ALL,on(),off(LLVM_COMPILE,HASH_CONFLICT,STREAM_DATA_CHECK),不开启任何定位功能。
  • explain_perf_mode 参数说明:此参数用来指定explain的显示格式。 该参数属于USERSET类型参数,请参考重设参数中对应设置方法进行设置。 取值范围: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算子的计划。
  • query_dop 参数说明:用户自定义的查询并行度。该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,-64-64 [1,64]:打开固定SMP功能,系统会使用固定并行度。 0:打开SMP自适应功能,系统会根据资源情况和计划特征动态选取最优并行度。 [-64,-1]:打开SMP自适应功能,并限制自适应选取的最大并行度。 在开启并行查询后,请保证系统CPU、内存、网络、I/O等资源充足,以达到最佳效果。 为了避免用户设置不合理的过大值造成性能劣化,系统会计算出该DN可用最大CPU核数,并以此来作为query_dop的上限。如果用户设置query_dop超过4并且同时超过该上限,那么系统会重置query_dop为该上限值。 默认值:1
  • enable_sonic_optspill 参数说明:标识是否对面向列的hash表设计的Hash Join算子进行下盘文件数优化。该参数打开时,在Hash Join算子下盘文件较多的时候,下盘文件数不会显著增加。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on表示优化面向列的hash表设计的Hash Join算子的下盘文件数。 off表示不优化面向列的hash表设计的Hash Join算子的下盘文件数。 默认值:on
  • plan_cache_mode 参数说明:标识在prepare语句中,选择生成执行计划的策略。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:枚举类型 auto表示按照默认的方式选择custom plan或者generic plan。 force_generic_plan表示强制走generic plan(软解析)。generic plan是指对于prepare语句生成计划,该计划策略会在执行execute语句的时候把参数bind到plan中,然后执行计划。这种方案的优点是每次执行可以省去重复的优化器开销;缺点是当bind参数字段上数据存在倾斜时该计划可能不是最优的,部分bind参数场景下执行性能较差。 force_custom_plan表示强制走custom plan(硬解析)。custom plan是指对于prepare语句,在执行execute的时候,把execute语句中的参数嵌套到语句之后生成的计划。custom plan会根据execute语句中具体的参数生成计划,这种方案的优点是每次都按照具体的参数生成优选计划,执行性能比较好;缺点是每次执行前都需要重新生成计划,存在大量的重复的优化器开销。 此参数只对prepare语句生效,一般用在prepare语句中参数化字段存在比较严重的数据倾斜的场景下。 默认值:auto
  • session_sequence_cache 参数说明:在当前会话下,一次性交互申请的sequence数值,会话结束会自动丢弃未用完的值。用户在使用sequence大批量导入数据的时候可以通过调大该参数,提高插入速度,增加高并发性能;用户在高并发单条插入数据的时候,将该参数设置为1,减少了sequence的跳变。如对连续性有强要求,需要在创建sequence的时候指定需要的cache,该参数如果大于cache指定的值会自动失效。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,1 ~ 2147483647。 默认值:10 默认值为10是高并发场景下,兼顾单条插入和批量插入的性能会有比较好的表现。
  • enable_sonic_hashagg 参数说明:标识是否依据规则约束使用基于面向列的hash表设计的Hash Agg算子。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on表示在满足约束条件时使用基于面向列的hash表设计的Hash Agg算子。 off表示不使用面向列的hash表设计的Hash Agg算子。 在开启enable_sonic_hashagg,且查询达到约束条件使用基于面向列的hash表设计的Hash Agg算子时,查询对应的Hash Agg算子内存使用通常可获得精简。但对于代码生成技术可获得显著性能提升的场景(enable_codegen打开后获得较大性能提升),对应的算子查询性能可能会出现劣化。 开启enable_sonic_hashagg,且查询达到约束条件使用基于面向列的hash表设计的Hash Agg算子时,在Explain Analyze/Performance的执行计划和执行信息中,算子显示为“Sonic Hash Aggregation”,而未达到该约束条件时,算子名称将显示为“Hash Aggregation”,Explain详解请参见详解。 默认值:on
  • router 参数说明:用于控制router功能的详细属性,仅在打开enable_router和enable_light_proxy后生效。该参数会根据表的hash分布列,计算给定的分布列在哪个DN上,设置router后将支持的sql下推到该DN上执行。如果设置错了router,可能导致数据存入错误的dn,导致不可预测的问题,需谨慎使用。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串 该参数分为两部分,'schema_name.table_name,"distribute_keys"',其具体含义如下: schema_name.table_name:表示schema名和表名,如不显示设置schema_name,则默认为current_schema。 distribute_keys:分布表的所有分布列值,用逗号间隔开,且分布列值的顺序必须和表中分布列顺序一致。 默认值:空
  • enable_sonic_hashjoin 参数说明:标识是否依据规则约束使用基于面向列的hash表设计的Hash Join算子。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on表示在满足约束条件时使用基于面向列的hash表设计的Hash Join算子。 off表示不使用面向列的hash表设计的Hash Join算子。 当前开关仅适用于Inner Join的场景。 在开启enable_sonic_hashjoin,查询对应的Hash Inner算子内存使用通常可获得精简。但对于代码生成技术可获得显著性能提升的场景,对应的算子查询性能可能会出现劣化。 开启enable_sonic_hashjoin,且查询达到约束条件使用基于面向列的hash表设计的Hash Join算子时,在Explain Analyze/Performance的执行计划和执行信息中,算子显示为“Sonic Hash Join”,而未达到该约束条件时,算子名称将显示为“Hash Join”,Explain详解请参见详解。 默认值:on
  • auto_explain_log_min_duration 参数说明:控制自动打印执行计划的耗时阈值,整体耗时大于auto_explain_log_min_duration的执行计划才会被打印。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整形,0~2147483647,单位为毫秒。 设置为0,所有执行过的执行计划都会输出。 设置为3000,单次语句执行耗时超过3000毫秒后所有执行的执行计划会输出。 默认值:0
  • cursor_tuple_fraction 参数说明:优化器估计游标获取行数在总行数中的占比。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:浮点型,0.0~1.0。 比默认值小的值与使用 “fast start” 为游标规划的值相偏离,从而使得前几行恢复的很快而抓取全部的行需要很长的时间。比默认值大的值加大了总的估计的时间。在最大的值1.0处,像正常的查询一样规划游标,只考虑总的估计时间和传送第一行的时间。 默认值:0.1
  • enable_codegen 参数说明:标识是否允许开启代码生成优化,目前代码生成使用的是LLVM优化。当前特性是实验室特性,使用时请联系华为工程师提供技术支持。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on表示允许开启代码生成优化。 off表示不允许开启代码生成优化。 目前LLVM优化仅支持向量化执行引擎特性,在其他场景下建议关闭此参数。 默认值:off
  • join_collapse_limit 参数说明:根据得出的列表项数来判断优化器是否执行把除FULL JOINS之外的JOIN构造重写到FROM列表中。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,1~2147483647‬。 设置为1会避免任何JOIN重排。这样就使得查询中指定的连接顺序就是实际的连接顺序。查询优化器并不是总能选取最优的连接顺序,高级用户可以选择暂时把这个变量设置为1,然后指定它们需要的连接顺序。 比默认值小的数值减少规划时间但也降低了执行计划的质量。 默认值:8
  • codegen_strategy 参数说明:标识在表达式codegen化过程中所使用的代码生成优化策略。当前特性是实验室特性,使用时请联系华为工程师提供技术支持。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:枚举类型 partial表示当所计算表达式中即使包含部分未被codegen化的函数时,仍可借助表达式全codegen框架调用LLVM动态编译优化策略。 pure表示当所计算表达式整体可被codegen化时,才考虑调用LLVM动态编译优化策略。 在开启代码生成优化会导致查询性能下降的场景下可以设置此参数为pure,其他场景下建议不改变此参数的默认值partial。 默认值:partial
  • default_statistics_target 参数说明:为没有用ALTER TABLE SET STATISTI CS 设置字段目标的表设置缺省统计目标。此参数设置为正数是代表统计信息的样本数量,为负数时,代表使用百分比的形式设置统计目标,负数转换为对应的百分比,即-5代表5%。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,-100~10000。 比默认值大的正数数值增加了ANALYZE所需的时间,但是可能会改善优化器的估计质量。 调整此参数可能存在性能劣化的风险,如果某个查询劣化,可以考虑 恢复默认的统计信息。 使用plan hint来调整到之前的查询计划。(详细参见使用Plan Hint进行调优) 当此guc参数设置为负数时,如果计算的采样样本数大于等于总数据量的2%,且用户表的数据量小于1600000时,ANALYZE所需时间相比guc参数为默认值的时间会有所增加。 当此guc参数设置为负数时,则autoanalyze不生效。 默认值:100
共100000条