华为云用户手册

  • enable_codegen 参数说明:标识是否允许开启代码生成优化,目前代码生成使用的是LLVM优化。当前特性是实验室特性,使用时请联系华为工程师提供技术支持。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on表示允许开启代码生成优化。 off表示不允许开启代码生成优化。 目前LLVM优化仅支持向量化执行引擎特性,在其他场景下建议关闭此参数。 默认值:off
  • 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
  • codegen_cost_threshold 参数说明:由于LLVM编译生成最终的可执行机器码需要一定时间,因此只有当实际执行的代价大于编译生成机器码所需要的代码和优化后的执行代价之和时,利用代码生成才有收益。codegen_cost_threshold标识代价的阈值,当执行估算代价大于该代价时,使用LLVM优化。当前特性是实验室特性,使用时请联系华为工程师提供技术支持。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0 ~ 2147483647。 默认值:10000
  • codegen_strategy 参数说明:标识在表达式codegen化过程中所使用的代码生成优化策略。当前特性是实验室特性,使用时请联系华为工程师提供技术支持。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:枚举类型 partial表示当所计算表达式中即使包含部分未被codegen化的函数时,仍可借助表达式全codegen框架调用LLVM动态编译优化策略。 pure表示当所计算表达式整体可被codegen化时,才考虑调用LLVM动态编译优化策略。 在开启代码生成优化会导致查询性能下降的场景下可以设置此参数为pure,其他场景下建议不改变此参数的默认值partial。 默认值:partial
  • enable_partition_opfusion 参数说明:在enable_opfusion参数打开的状态下,如果开启该参数,可以对分区表的简单查询进行查询优化,提升SQL执行性能。在开启enable_global_plancache参数时,此参数设置on时将不生效。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on表示使用。 off表示不使用。 默认值:off
  • constraint_exclusion 参数说明:控制查询优化器使用表约束查询的优化。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:枚举类型 on表示检查所有表的约束。 off表示不检查约束。 partition表示只检查继承的子表和UNION ALL子查询。 当constraint_exclusion为on,优化器用查询条件和表的CHECK约束比较,并且在查询条件和约束冲突的时候忽略对表的扫描。 默认值:partition 目前, constraint_exclusion缺省被打开,通常用来实现表分区。为所有的表打开它时,对于简单的查询强加了额外的规划,并且对简单查询没有什么好处。如果不用分区表,可以关掉它。
  • gpc_clean_timeout 参数说明:开启enable_global_plancache的情况下,如果共享计划列表里的计划超过gpc_clean_timeout的时间没有被使用,则会被清理掉。本参数用于控制没有使用的共享计划的保留时间。当前特性是实验室特性,使用时请联系华为工程师提供技术支持。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,300~86400 单位为秒 默认值:1800,即30min
  • enable_global_stats 参数说明:标识当前统计信息模式,区别采用全局统计信息收集模式还是单节点统计信息收集模式,默认创建为采用全局统计信息模式。当关闭该参数时,则默认收集数据库第一个节点的统计信息,此时可能会影响生成查询计划的质量,但信息收集性能较优,建议谨慎设置。 该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on/true表示全局统计信息。 off/false表示数据库节点统计信息。 默认值:on
  • enable_global_plancache 参数说明:设置是否对PBE查询的执行计划进行缓存共享,开启该功能可以节省高并发下数据库节点的内存使用。当前特性是实验室特性,使用时请联系华为工程师提供技术支持。 在打开enable_global_plancache的情况下,为保证GPC生效,默认local_syscache_threshold不小于16MB。即如当前local_syscache_threshold小于16MB,则设置为16MB,如大于16MB,则不改变。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型。 on表示对PBE查询的执行计划进行缓存共享。 off表示不共享。 默认值:off
  • enable_opfusion 参数说明:控制是否对简单增删改查进行优化。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 简单查询限制如下: 只支持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
  • default_statistics_target 参数说明:为没有用ALTER TABLE SET STATIS TICS 设置字段目标的表设置缺省统计目标。此参数设置为正数是代表统计信息的样本数量,为负数时,代表使用百分比的形式设置统计目标,负数转换为对应的百分比,即-5代表5%。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,-100~10000。 比默认值大的正数数值增加了ANALYZE所需的时间,但是可能会改善优化器的估计质量。 调整此参数可能存在性能劣化的风险,如果某个查询劣化,可以考虑 恢复默认的统计信息。 使用plan hint来调整到之前的查询计划。(详细参见使用Plan Hint进行调优) 当此guc参数设置为负数时,如果计算的采样样本数大于等于总数据量的2%,且用户表的数据量小于1600000时,ANALYZE所需时间相比guc参数为默认值的时间会有所增加。 当此guc参数设置为负数时,则autoanalyze不生效。 默认值:100
  • cursor_tuple_fraction 参数说明:优化器估计游标获取行数在总行数中的占比。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:浮点型,0.0~1.0。 比默认值小的值与使用 “fast start” 为游标规划的值相偏离,从而使得前几行恢复的很快而抓取全部的行需要很长的时间。比默认值大的值加大了总的估计的时间。在最大的值1.0处,像正常的查询一样规划游标,只考虑总的估计时间和传送第一行的时间。 默认值:0.1
  • explain_perf_mode 参数说明:此参数用来指定explain的显示格式。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:normal、pretty、summary、run normal:代表使用默认的打印格式。 pretty:代表使用 GaussDB 改进后的新显示格式。新的格式层次清晰,计划包含了plan node id,性能分析简单直接。 summary:是在pretty的基础上增加了对打印信息的分析。 run:在summary的基础上,将统计的信息输出到csv格式的文件中,以便于进一步分析。 默认值:pretty(当前版本参数取值仅normal生效,若设置为非normal,显示格式依然为normal)
  • analysis_options 参数说明:通过开启对应选项中所对应的功能选项使用相应的定位功能,包括数据校验、性能统计等,参见取值范围中的选项说明。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串 LLVM_COMPILE表示在explain performance显示界面中显示每个线程的codegen编译时间。当前特性是实验室特性,使用时请联系华为工程师提供技术支持。 HASH_CONFLICT表示在数据库节点进程的pg_log目录中的log日志中显示hash表的统计信息,包括hash表大小、hash链长、hash冲突情况。 STREAM_DATA_CHECK表示对网络传输前后的数据进行CRC校验。 默认值:ALL,on(),off(LLVM_COMPILE,HASH_CONFLICT,STREAM_DATA_CHECK),不开启任何定位功能。
  • cost_param 参数说明:该参数用于控制在特定的客户场景中,使用不同的估算方法使得估算值与真实值更接近。此参数可以同时控制多种方法,与某一方法对应的位做与操作,不为0表示该方法被选择。 当cost_param & 1 不为0,表示对于求不等值连接选择率时选择一种改良机制,此方法在自连接(两个相同的表之间连接)的估算中更加准确。目前,已弃用cost_param & 1 不为0时的路径,默认选择更优的估算公式; 当cost_param & 2 不为0,表示求多个过滤条件(Filter)的选择率时,选择最小的作为总的选择率,而非两者乘积,此方法在过滤条件的列之间关联性较强时估算更加准确; 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0~INT_MAX 默认值:0
  • 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查询重写规则(从主查询中下推条件到子查询)。 uniquecheck:使用Unique Check查询重写规则(提升目标列中无agg的子查询语句,在执行时检查返回行数是否为1行)。 intargetlist:使用In Target List查询重写规则(提升目标列中的子查询)。 predpushnormal:使用Predicate Push查询重写规则(下推谓词条件到子查询中)。 predpushforce:使用Predicate Push查询重写规则(下推谓词条件到子查询中,尽可能的利用索引加速)。 predpush:在predpushnormal和predpushforce中根据代价选择最优计划。 disable_pullup_expr_sublink:禁止优化器将expr_sublink类型的子连接提升,关于sublink的分类和提升原理详见子查询调优。 默认值:magicset
  • effective_cache_size 参数说明:设置优化器在一次单一的查询中可用的磁盘缓冲区的有效大小。 设置这个参数,还要考虑GaussDB的共享缓冲区以及内核的磁盘缓冲区。另外,还要考虑预计的在不同表之间的并发查询数目,因为它们将共享可用的空间。 这个参数对GaussDB分配的共享内存大小没有影响,它也不会使用内核磁盘缓冲,它只用于估算。数值是用磁盘页来计算的,通常每个页面是8192字节。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,1~2147483647,单位为8KB。 比默认值高的数值可能会导致使用索引扫描,更低的数值可能会导致选择顺序扫描。 默认值: 180GB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存);135GB(96核CPU/768G内存);90GB(64核CPU/512G内存);80GB(60核CPU/480G内存);40GB(32核CPU/256G内存);18GB(16核CPU/128G内存);8GB(8核CPU/64G内存);4GB(4核CPU/32G内存);2GB(4核CPU/16G内存)
  • random_page_cost 参数说明:设置优化器计算一次非顺序抓取磁盘页面的开销。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 虽然服务器允许将random_page_cost设置的比seq_page_cost小,但是物理上实际不受影响。如果所有数据库都位于随机访问内存中时,两者设置为相等很合理。因为在此种情况下,非顺序抓取页并没有副作用。同样,在缓冲率很高的数据库上,应该相对于CPU参数同时降低这两个值,因为获取内存中的页要比通常情况下开销小很多。 取值范围:浮点型,0~DBL_MAX。 默认值:4 对于特别表空间中的表和索引,可以通过设置同名的表空间的参数来覆盖这个值。 相对于seq_page_cost,减少这个值将导致系统更倾向于使用索引扫描,而增加这个值使得索引扫描开销比较高。可以通过同时增加或减少这两个值来调整磁盘I/O相对于CPU的开销。
  • qrw_inlist2join_optmode 参数说明:控制是否使用inlist-to-join查询重写。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串 disable:关闭inlist2join查询重写。 cost_base:基于代价的inlist2join查询重写。 rule_base:基于规则的inlist2join查询重写,即强制使用inlist2join查询重写。 任意正整数:inlist2join查询重写阈值,即list内元素个数大于该阈值,进行inlist2join查询重写。 默认值:cost_base
  • try_vector_engine_strategy 参数说明:设置行存表走向量化执行引擎的策略。通过设置该参数,可以使包含行存表的查询可以转换为向量化的执行计划执行计算,从而提升类AP场景的复杂查询的执行性能。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:枚举型 off,为默认取值,表示关闭本功能,即行存表不会转换为向量的执行计划执行。 force,表示只要查询中不包含向量化引擎不支持的类型或者表达式,则不论查询的基表为行存表、列存表,还是行列混合存储的,强制将查询转换为向量化的执行计划执行计算。在这种情况下,针对不同的查询场景可能出现性能下降。 optimal,表示在force的基础上,由优化器根据查询的复杂度进行选择是否将查询语句转换为向量化的执行计划,尽可能避免转换为向量化的执行计划后出现性能下降。 默认值:off
  • 查询规划 介绍查询优化器方法配置、开销常量、规划算法以及一些配置参数。 优化器中涉及的两个参数: INT_MAX数据类型INT的最大值,其值为2147483647。 DBL_MAX数据类型FLOAT的最大值。 全局设置查询规划相关参数除了客户业务外也会对数据库自身运维和监控业务造成影响,如WDR报告生成、扩容、重分布、数据导入导出等。 优化器方法配置 优化器开销常量 基因查询优化器 其他优化器选项 父主题: GUC参数说明
  • hot_standby 参数说明:设置是否允许备机在恢复过程中连接和查询。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 如果此参数设置为on,wal_level级别必须设置为hot_standby或以上,否则将导致数据库无法启动。 在双机环境中,因为会对双机其他一些功能产生影响,hot_standby参数不能设置成off。 如果hot_standby参数曾经被关闭,且wal_level参数曾被设置低于hot_standby等级,那么,再次打开hot_standby参数之前,为了确保主备环境下备机上待回放的日志都可以支持备机查询功能,需要进行如下操作: 将主、备的wal_level参数调整到hot_standby等级或以上,并重启实例生效。 在主机上执行checkpoint操作,并通过查询pg_stat_get_wal_senders()系统函数,确认各个备机的receiver_replay_location追上主机当前的sender_flush_location,保证wal_level的调整同步到备机并生效,且备机不需要再回放之前低等级的日志。 将主、备的hot_standby参数打开(设为on),并重启实例生效。 取值范围:布尔型 on表示允许备机在恢复过程中连接和查询。 off表示不允许备机在恢复过程中连接和查询。 默认值:on
  • wal_receiver_status_interval 参数说明:设置WAL日志接收进程的状态通知给主机的最大时间间隔。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0 ~ INT_MAX ,单位为毫秒。 默认值:5s(即5000ms) 当该参数设置为0时,表示关闭备机向主机反馈日志接收位置等信息,可能会导致主机事务提交阻塞、switchover操作失败等异常现象。正常业务场景,不建议将该参数设置为0。
  • max_standby_streaming_delay 参数说明:当开启双机热备模式时,如果备机正通过流复制接收WAL日志数据,这时进行查询就会产生冲突,这个参数就是设置备机取消查询之前所等待的时间。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。当参数值较大,或业务压力大时,概率出现等待事务回放落盘的报错。 -1表示允许备机一直等待冲突的查询完成。 取值范围:整型(毫秒),范围:-1~INT_MAX 默认值:3s(即3000ms)
  • hot_standby_feedback 参数说明:设置是否允许将备机上执行查询的结果反馈给主机,这可以避免查询冲突。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on表示允许将备机上执行查询的最小事务号反馈给主机。 off表示不允许将备机上执行查询的最小事务号反馈给主机。 默认值:off 当该参数为on时,主机的旧版本数据的清理会受限于备机正在读的事务,即主机只允许清理小于备机反馈回来的事务所作的更改。 所以,若该参数开启时,会影响主机的性能。若备机回放与查询冲突,出现查询报错,建议适当调大max_standby_streaming_delay。
  • sync_config_strategy 参数说明:主机和备机之间配置文件的同步策略。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:枚举类型 all_node: 主机配置为all_node时,表示允许主机向所有备机主动同步配置文件;备机配置为all_node时,表示允许当前备机向其主机发送同步请求。 only_sync_node: 主机配置为only_sync_node时,表示仅允许主机向所有同步备机主动同步配置文件;备机配置为only_sync_node时,表示允许当前备机向其主机发送同步请求。 none_node: 主机配置为none_node时,表示不允许主机向任何备机主动同步配置文件;备机配置为none_node时,表示不允许当前备机向其主机发送同步请求。 默认值:all_node
  • hadr_recovery_point_target 参数说明:在流式容灾模式下设置hadr_recovery_point_target能够让备数据库实例完成日志刷盘的rpo时间。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0~3600 (秒) 0是指不开启日志流控,1~3600是指备机能够在hadr_recovery_point_target时间内完成日志的刷盘,可以保证主数据库实例与备数据库实例切换时日志差距能够在hadr_recovery_point_target秒内,保障备数据库实例升主日志量。hadr_recovery_point_target设置时间过小会影响主机的性能,设置过大会失去流控效果。 默认值:0
  • hadr_super_user_record_path 参数说明:该参数为流式异地容灾参数,表示备数据库实例中hadr_disaster用户的加密文件存放路径。该参数属于SIGHUP类型参数,请 参考表1中方式对应设置方法进行设置。 修改建议:由流式容灾密码传递工具自动设置,不需要用户手动添加。 取值范围:字符串 默认值:NULL 在一个包含了主机、备机的数据库实例中,主机相对于备机是发送端,备机相对于主机是接收端。 发送端主动向接收端同步配置文件、接收端请求发送端同步配置文件是两个独立的事件,均会使得配置文件同步。若不希望配置文件同步,则需要在接收端配置为none_node,发送端若为备机只能配置为none_node,发送端若为主机,配置为none_node时主机与所有备机都不同步,为only_sync_node时仅与同步备同步,不与异步备同步。 配置参数同步的具体表现为,发送端发送配置文件,对接收端配置文件中的对应参数直接覆盖。若设置了配置文件需要同步的策略,则修改接收端配置参数后,发送端会立刻覆盖接收端的配置参数,使得接收端修改不生效。 即使设置了配置文件需要同步的策略,仍有部分配置参数不会被同步。包括:"application_name", "archive_command", "audit_directory", "available_zone", "comm_control_port", "comm_sctp_port", "listen_addresses", "log_directory", "port", "replconninfo1", "replconninfo2", "replconninfo3", "replconninfo4", "replconninfo5", "replconninfo6", "replconninfo7", "replconninfo8", "replconninfo9", "replconninfo10", "replconninfo11", "replconninfo12", "replconninfo13", "replconninfo14", "replconninfo15", "replconninfo16", "replconninfo17", "replconninfo18", "ssl", "ssl_ca_file", "ssl_cert_file", "ssl_ciphers", "ssl_crl_file", "ssl_key_file", "ssl_renegotiation_limit", "ssl_cert_notify_time", "synchronous_standby_names", "local_bind_address", "perf_directory", "query_log_directory", "asp_log_directory", "streaming_router_port", "enable_upsert_to_merge", "archive_dest", "recovery_min_apply_delay", "sync_config_strategy"。
  • hadr_recovery_time_target 参数说明:在流式容灾模式下设置hadr_recovery_time_target能够让备数据库实例完成日志写入和回放。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0~3600 (秒) 0是指不开启日志流控,1~3600是指备机能够在hadr_recovery_time_target时间内完成日志的写入和回放,可以保证主数据库实例与备数据库实例切换时能够在hadr_recovery_time_target秒完成日志写入和回放,保证备数据库实例能够快速升主。hadr_recovery_time_target设置时间过小会影响主机的性能,设置过大会失去流控效果。 默认值:0
  • enable_data_replicate 参数说明:当数据库在数据导入行存表时,主机与备机的数据同步方式可以进行选择。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on表示导入数据行存表时主备数据采用数据页的方式进行同步。当replication_type参数为1时,不允许设置为on,如果此时用guc工具设置成on,会强制改为off。 off表示导入数据行存表时主备数据采用日志(Xlog)方式进行同步。 默认值:off
共100000条