华为云用户手册

  • default_statistics_target 参数说明:为没有用ALTER TABLE SET STATIS TICS 设置字段目标的表设置缺省统计目标。此参数设置为正数是代表统计信息的样本数量,为负数时,代表使用百分比的形式设置统计目标,负数转换为对应的百分比,即-5代表5%。采样时,会将default_statistics_target * 300作为随机抽样的大小,例如默认值为100时,会随机读取30000个页面再从中随机取30000条数据来完成随机抽样。 参数类型:USERSET 取值范围:浮点型,-100~10000。 比默认值大的正数数值增加了ANALYZE所需的时间,但是可能会改善优化器的估计质量。 调整此参数可能存在性能劣化的风险,如果某个查询劣化,可以考虑 恢复默认的统计信息。 使用plan hint来调整到之前的查询计划。(详细参见使用Plan Hint进行调优) 当此guc参数设置为负数时,如果计算的采样样本数大于等于总数据量的2%,且用户表的数据量小于1600000时,ANALYZE所需时间相比guc参数为默认值的时间会有所增加。 autoanalyze不支持临时表采样方式设置采样大小,采样过程使用参数默认值。 当强制使用内存方式计算统计信息时,采样大小受maintenance_work_mem参数限制。 默认值:100
  • random_page_cost 参数说明:设置优化器计算一次非顺序抓取磁盘页面的开销。 参数类型:USERSET 取值范围:浮点型,0~10000。 默认值:4 虽然服务器允许将random_page_cost设置的比seq_page_cost小,但是物理上实际不受影响。如果所有数据库都位于随机访问内存中时,两者设置为相等很合理。因为在此种情况下,非顺序抓取页并没有副作用。同样,在缓冲率很高的数据库上,应该相对于CPU参数同时降低这两个值,因为获取内存中的页要比通常情况下开销小很多。 对于特别表空间中的表和索引,可以通过设置同名的表空间的参数来覆盖这个值。 相对于seq_page_cost,减少这个值将导致系统更倾向于使用索引扫描,而增加这个值使得索引扫描开销比较高。可以通过同时增加或减少这两个值来调整磁盘I/O相对于CPU的开销。
  • effective_cache_size 参数说明:设置优化器在一次单一的查询中可用的磁盘缓冲区的有效大小。 设置这个参数,还要考虑 GaussDB (DWS)的共享缓冲区以及内核的磁盘缓冲区。另外,还要考虑预计的在不同表之间的并发查询数目,因为它们将共享可用的空间。 这个参数对GaussDB(DWS)分配的共享内存大小没有影响,它也不会使用内核磁盘缓冲,它只用于估算。数值是用磁盘页来计算的,通常每个页面是8192字节。 参数类型:USERSET 取值范围:整型,1~INT_MAX,单位为8KB。 比默认值高的数值可能会导致使用索引扫描,更低的数值可能会导致选择顺序扫描。 默认值:128MB
  • expected_computing_nodegroup 参数说明:标识选定的计算Node Group模式或目标计算Node Group。Node Group目前为内部用机制,用户无需设置。 共4种计算Node Group模式,用于关联操作和聚集操作时选定计算Node Group。在每一种模式中,优化器有针对性地选定几个候选计算Node Group,然后根据代价,从中为当前算子挑选更合适的计算Node Group。 参数类型:USERSET 取值范围:字符串 optimal:候选计算Node Group列表包含算子操作对象所在的Node Group和由当前用户具有COMPUTE权限的所有Node Group包含的所有DN构成的Node Group。 query:候选计算Node Group列表包含算子操作对象所在的Node Group和由当前查询涉及的所有基表所在Node Group包含的所有DN构成的Node Group。 bind:当前session用户是逻辑集群用户时,候选计算Node Group为当前用户关联的逻辑集群的Node Group;当session用户不是逻辑集群用户时,候选计算Node Group选取规则和参数设置为query时的规则一致。 Node Group名: enable_nodegroup_debug为off时:候选计算Node Group列表包含算子操作对象所在的Node Group和该指定的Node Group。 enable_nodegroup_debug为on时:候选计算Node Group为指定的Node Group。 默认值:bind
  • setop_optmode 参数说明:控制不带ALL选项的集合操作(UNION/EXCEPT/INTERSECT)语句的各个查询分支语句是否执行去重操作。 参数类型:USERSET 取值范围:枚举型 disable:查询分支不执行去重操作。 force:强制查询分支执行去重操作。 cost:优化器在查询分支去重和不去重这两种执行方式中,选择代价比较小的执行方式。 默认值:cost 新装9.1.0.200及以上版本集群中该参数的默认值为cost,升级场景该参数的默认值为保持前向兼容维持原值。 此参数配置仅在SQL语句的执行计划满足以下条件时生效: SQL语句中的UNION/EXCEPT/INTERSECT操作不带ALL选项。 执行集合操作的各个查询分支在进行集合操作前执行过数据重分布动作。
  • enable_nodegroup_debug 参数说明:控制优化器在多Node Group环境下,是否使用强制弹性计算。Node Group目前为内部用机制,用户无需设置。 该参数只在expected_computing_nodegroup被设置为具体Node Group时生效。 参数类型:USERSET 取值范围:布尔型 on表示强制将计算弹性到expected_computing_nodegroup所指定的Node Group进行计算。 off表示不强制使用某个Node Group进行计算。 默认值:off
  • qrw_inlist2join_optmode 参数说明:控制是否使用inlist-to-join查询重写。 参数类型:USERSET 取值范围:字符串 disable:关闭inlist2join查询重写。 cost_base:基于代价的inlist2join查询重写。 rule_base:基于规则的inlist2join查询重写,即强制使用inlist2join查询重写。 任意正整数:inlist2join查询重写阈值,即list内元素个数大于该阈值,进行inlist2join查询重写。 默认值:disable
  • enable_hashfilter_test 参数说明:该参数用于控制是否为基表扫描增加分布列的hashfilter,以便确认结果是否符合预期。同时,在数据插入时,控制是否进行DN准确性校验(即校验当前数据是否应该插入当前DN)。 参数类型:USERSET 取值范围:布尔型 on表示为基表扫描添加分布列的hashfilter,并在数据插入时进行DN准确性校验。 off表示不为基表扫描添加分布列的hashfilter,并在数据插入时不进行DN准确性校验。 默认值:on 此参数仅对hash分布的表有效。 当该参数设置为on后,因在数据插入时会进行DN准确性校验,会影响数据插入性能。
  • best_agg_plan 参数说明:对于stream下的Agg操作,优化器会生成三种计划: hashagg+gather(redistribute)+hashagg。 redistribute+hashagg(+gather)。 hashagg+redistribute+hashagg(+gather)。 本参数用于控制优化器生成哪种hashagg的计划。 参数类型:USERSET 取值范围:0,1,2,3 取值为1时,强制生成第一种计划。 取值为2时,如果group by列可以重分布,强制生成第二种计划,否则生成第一种计划。 取值为3时,如果group by列可以重分布,强制生成第三种计划,否则生成第一种计划。 取值为0时,优化器会根据以上三种计划的估算cost选择最优的一种计划生成。 默认值:0
  • volatile_shipping_version 参数说明:控制volatile函数下推执行的范围。 参数类型:USERSET 取值范围:0,1,2,3 取值为3时,在2的基础上,扩展支持InlineCTE在只被引用一次时支持下推,扩展支持复制表UPSERT中使用包含volatile函数时的下推。 取值为2时,在1的基础上,扩展支持在复制CTE结果的目标列中包含volatile函数时的下推。 取值为1时,扩展支持nextval、uuid_generate_v1、sys_guid、uuid函数出现在语句目标列时的完全下推。 取值为0时,支持random类函数的完全下推,nextval、uuid_generate_v1函数仅在INSERT含有简单查询语句的部分下推。 默认值:3
  • turbo_engine_version 参数说明:对于建表指定turbo存储格式表(表属性中enable_turbo_store参数设置为on),且当查询不涉及merge join或sort agg算子时,执行器可走turbo执行引擎,执行器部分性能可获得成倍性能提升。 参数类型:USERSET 取值范围:0,1,2,3 取值为0时,表示turbo执行引擎关闭。 取值为1时,表示仅针对单表agg查询场景使用turbo执行引擎。 取值为2时,表示仅针对单表agg或多表join关联查询场景使用turbo执行引擎。 取值为3时,对于大多常用算子可使用turbo执行引擎加速,不支持算子如merge join,sort agg等算子。数据量较大且turbo_engine_version取值为3时,merge join,sort agg算子出现的情况较少,因此基本可以实现任意SQL语句的turbo执行引擎加速。 默认值:0 跨VW场景暂不建议打开turbo执行引擎。
  • max_opt_sort_rows 参数说明:控制order by子句中最大优化的limit+offset行数。该参数仅8.3.0及以上集群版本支持。 参数类型:USERSET 取值范围:整型,0~INT_MAX 取值为0时:表示参数不生效。 取值为其他值时:表示order by子句中limit+offset行数小于该值时,优化生效,大于该值时,优化不生效。优化后耗时减小,但内存消耗可能增大。 默认值:0
  • enable_value_redistribute 参数说明:控制是否开启生成value redistribute优化计划,8.2.0及以上集群版本中,该参数针对不带Partition by子句的rank、dense_rank、row_number是否生成value redistribute优化计划生效。 参数类型:USERSET 取值范围:布尔型 on表示支持使用value redistribute生成优化计划。 off表示不支持使用value redistribute生成优化计划。 默认值:on
  • spill_compression 参数说明:控制执行器算子运行数据由于内存不足下盘时的压缩算法。该参数仅9.1.0.100及以上集群版本支持。 参数类型:USERSET 取值范围:枚举型 'lz4',表示使用lz4压缩算法,对于下盘量较小场景性能更优,但占用更多存储空间。 'zstd',表示使用zstd压缩算法,对于下盘量较大场景,IO为主要瓶颈,其性能更优,且存储空间约为lz4的2/3。 默认值:'lz4'
  • enable_mixedagg 参数说明:控制优化器对Mixed Agg聚集规划类型的使用。 参数类型:USERSET 取值范围:布尔型 on表示使用,为符合条件的Grouping Sets语句(包括Rollup或Cube)生成Mixed Agg查询计划。 off表示不使用。 默认值:on 新装9.1.0.200及以上版本集群中该参数的默认值为on,升级场景该参数的默认值为保持前向兼容维持原值。 通常在大数量场景(单个DN表的数据量在100GB以上),采用Mixed Agg查询计划可以提升语句的执行性能。 不支持Mixed Agg的场景如下: GROUP BY子句里列的数据类型不支持哈希操作。 聚集函数中包含DISTINCT去重或ORDER BY排序。 使用GROUPING SETS子句时不包含空的分组。
  • build_backup_param 参数说明:控制增量build过程中用于磁盘备份的最小满足规格。 参数类型:SIGHUP 取值范围:字符串 默认值:(1%,1G,1G) 该参数只会影响增量build过程中是否生成pg_rewind_bak目录,字符串生效需要采用'x%,yG,zG'格式配置,gs_guc set设置有效值时该参数才有效,否则不生效。其中x代表最小剩余空间百分比,y代表最小剩余空间,z代表当前磁盘总容量。 当前build实例需同时满足以下两个条件才会进行build备份生产pg_rewind_bak,占用额外空间;不满足则不进行build备份,不占用额外空间。 条件一:当前磁盘总容量>= zG。如果不满足该条件则不进行备份;若满足该条件会继续对条件二进行判断。 条件二:磁盘剩余空间 >= yG且当前磁盘剩余空间百分比>= x%。
  • enable_incremental_catchup 参数说明:控制主备之间数据追赶(catchup)的方式。 参数类型:SIGHUP 取值范围:布尔类型 on表示备机catchup时用增量catchup方式,即从从备本地数据文件扫描获得主备差异数据文件列表,进行主备之间的catchup。 off表示备机catchup时用全量catchup方式,即从主机本地所有数据文件扫描获得主备差异数据文件列表,进行主备之间的catchup。 默认值:on
  • max_build_io_limit 参数说明:用于限制主机在提供备机重建(build)会话时,一秒时间内所允许磁盘读取的数据流量。 参数类型:SIGHUP 取值范围:整型,0~1048576,单位为KB。 默认值:0,表示主机对备机build无IO流控限制。 设置建议:可参考磁盘带宽和作业模型。无限制时或无作业干扰时,全量build在性能良好的磁盘(如SSD盘)下占磁盘带宽比例较小,磁盘IO未达到瓶颈,对业务性能影响较小,不需要设置阈值限制。在普通10000RPM转速的SAS盘下,如果build过程中,发现业务性能明显下降,可对该参数进行设置,当前推荐设置为20MB。 此设置将直接对build的进行速度和完成时间产生影响,不建议设置过低(10MB以下不建议)。在业务低峰时,建议及时取消限制,恢复build的正常速度。 该参数可在业务高峰期或主机磁盘IO压力较大场景时,通过限制备机build的流速阈值以减少对主机业务的影响。待业务高峰期过后,可取消限制或重新设置流速阈值。 具体业务场景以及磁盘性能状况,建议选择合适的阈值。
  • wal_keep_segments 参数说明:Xlog日志文件段数量。设置“pg_xlog”目录下保留事务日志文件的最小数目,备机通过获取主机的日志进行流复制。 参数类型:SIGHUP 取值范围:整型,2 ~ INT_MAX 默认值:128 设置建议: 当服务器开启日志归档或者从检查点恢复时,保留的日志文件数量可能大于wal_keep_segments设定的值。 如果此参数设置过小,则在备机请求事务日志时,此事务日志可能已经被产生的新事务日志覆盖,导致请求失败,主备关系断开。 当双机为异步传输时,以COPY方式连续导入4G以上数据需要增大wal_keep_segments配置。以T6000单板为例,如果导入数据量为50G,建议调整参数为1000。您可以在导入完成并且日志同步正常后,动态恢复此参数设置。
  • archive_command 参数说明:由管理员设置的用于归档WAL日志的命令,建议归档路径为绝对路径。 参数类型:SIGHUP 取值范围:字符串 默认值:(disabled) 字符串中任何%p都被要归档的文件的绝对路径代替,而任何%f都只被该文件名代替(相对路径都相对于数据目录的)。如果需要在命令里嵌入%字符就必须双写%。 这个命令当且仅当成功的时候才返回零。示例如下: 1 2 archive_command = 'cp --remove-destination %p /mnt/server/archivedir/%f' archive_command = 'copy %p /mnt/server/archivedir/%f' # Windows --remove-destination选项作用为:复制前如果目标文件已存在,会先删除已存在的目标文件,然后执行复制操作。 当archive_mode为on, archive_mode未设置时,系统会在pg_xlog目录下新建backup目录,并将wal日志复制压缩至pg_xlog/backup目录。
  • archive_timeout 参数说明:表示归档周期。 参数类型:SIGHUP 取值范围:整型,0 ~ INT_MAX,单位为秒。其中0表示禁用该功能。 默认值:0 超过该参数设定的时间时强制切换WAL段。 由于强制切换而提早关闭的归档文件仍然与完整的归档文件长度相同。因此,将archive_timeout设为很小的值将导致占用巨大的归档存储空间,建议将archive_timeout设置为60秒。
  • enable_delayed_unlinks 参数说明:设置是否开启检查点延迟删除特性。该参数仅9.1.0及以上集群版本支持。 参数类型:SIGHUP 取值范围:布尔型 on表示开启检查点延迟删除特性。 off表示关闭检查点延迟删除特性。 默认值:on 当开启检查点延迟删除后,主DN创建checkpoint时,会将待删除的relfilenode文件移动到对应的数据库的pg_delayed_unlinks_bin目录下。 判断OID是否复用时,除了会检查对应的数据库目录下的relfilenode文件是否存在,还会判断其下的pg_delayed_unlinks_bin目录下是否存在。 当备DN回放到对应的检查点记录后,主DN收到回放进度时会在下一个checkpoint将pg_delayed_unlinks_bin目录下与备DN回放到的checkpoint对应的那一批relfilenode文件删除掉。 当记录的延迟删除的relfilenode足够多时(1000万),多余的relfilenode会残留在pg_delayed_unlinks_bin目录下,直到对应的数据库/表空间被删除或者节点重启会被清理。
  • checkpoint_segments 参数说明:设置checkpoint_timeout周期内所保留的最少WAL日志段文件数量。每个日志文件大小为16MB。 参数类型:SIGHUP 取值范围:整型,最小值1 默认值:64 提升此参数可加快大数据的导入速度,但需要结合checkpoint_timeout、shared_buffers这两个参数统一考虑。这个参数同时影响WAL日志段文件复用数量,通常情况下pg_xlog文件夹下最大的复用文件个数为2倍的checkpoint_segments个,复用的文件被改名为后续即将使用的WAL日志段文件,不会被真正删除。
  • wal_level 参数说明:设置写入WAL信息量的级别。 参数类型:POSTMASTER 取值范围:枚举类型 minimal 优点:一些重要操作(包括创建表、创建索引、簇操作和表的复制)都能安全的跳过,这样就可以使操作变得更快。 缺点:WAL仅提供从数据库服务器崩溃或者紧急关闭状态恢复时所需要的基本信息,无法用WAL归档日志恢复数据。 archive 这个参数增加了WAL归档需要的日志信息,从而可以支持数据库的归档恢复。 hot_standby 这个参数进一步增加了在备机上运行的SQL查询的信息,这个参数只能在数据库服务重新启动后生效。 为了在备机上开启只读查询,wal_level必须在主机上设置成hot_standby ,并且备机必须打开hot_standby参数。hot_standby和archive级别之间的性能只有微小的差异,如果它们的设置对产品的性能影响有明显差异,欢迎反馈。 默认值:hot_standby 如果需要启用WAL日志归档和主备机的数据流复制,必须将此参数设置为archive或者hot_standby。 如果此参数设置为archive,hot_standby必须设置为off,否则将导致数据库无法启动。
  • commit_delay 参数说明:表示一个已经提交的数据在WAL缓冲区中存放的时间。 参数类型:USERSET 取值范围:整型, 0~100000(微秒),其中0表示无延迟。 默认值:0 设置为非 0 值时事务执行commit后不会立即写入WAL中,而仍存放在WAL缓冲区中,等待WalWriter进程周期性写入磁盘。 如果系统负载很高,在延迟时间内,其他事务可能已经准备好提交。但如果没有事务准备提交,这个延迟就是在浪费时间。
  • wal_buffers 参数说明:设置用于存放WAL数据的共享内存空间的X LOG _BLCKSZ数,XLOG_BLCKSZ的大小默认为8KB。 参数类型:POSTMASTER 取值范围:-1~218,单位为8KB。 如果设置为-1,表示wal_buffers的大小随着参数shared_buffers自动调整,为shared_buffers的1/32,最小值为8个XLOG_BLCKSZ,最大值为2048个XLOG_BLCKSZ。 如果设置为其他值,当小于8时,会被默认设置为8;当大于2048的时,会被强制设置为2048。 默认值:256MB 设置建议:每次事务提交时,WAL缓冲区的内容都写入到磁盘中,因此设置为很大的值不会带来明显的性能提升。如果将它设置成几百兆,就可以在有很多即时事务提交的服务器上提高写入磁盘的性能。根据经验来说,默认值可以满足大多数的情况。
  • wal_compression 参数说明:控制是否对FPI页面进行压缩。 参数类型:USERSET 取值范围:布尔型 on表示开启FPI压缩。 off表示关闭FPI压缩。 默认值:on 当前压缩算法为zlib,暂不支持设置为其他压缩算法。 对于通过从低版本升级成为当前版本的集群,此参数默认关闭(off)。如果用户需要,可以通过gs_guc命令打开FPI压缩功能。 当前版本若为全新安装版本,此参数默认打开(on)。 从低版本升级上来的集群,如果手动开启了此参数,不允许再进行集群回滚操作。
  • partition_mem_batch 参数说明:为了优化对列存分区表的批量插入,在批量插入过程中会对数据进行缓存后再批量写盘。在partition_max_cache_size设置的情况下,通过partition_mem_batch可指定缓存个数。该参数值设置越大,每个分区可用的缓存越小,降低列存分区表批量插入性能;设置越小,每个分区可用的缓存会越大,会消耗较多系统内存资源。 参数类型:USERSET 取值范围:1~ 65535 默认值:256
  • raise_errors_if_no_files 参数说明:导入时是否区分“导入文件记录数为空”和“导入文件不存在”。raise_errors_if_no_files=TRUE,则“导入文件不存在”的时候,GaussDB(DWS)将上报“文件不存在的”错误。 参数类型:SUSET 取值范围:布尔型 on表示导入时区分“导入文件记录数为空”和“导入文件不存在”。 off表示导入时不区分“导入文件记录数为空”和“导入文件不存在”。 默认值:off
  • gds_debug_mod 参数说明:为了增强对Gauss Data Service (以下简称GDS)相关问题的分析定位能力,可以通过此参数选择是否开启GDS的debug功能。参数开启后,将在集群节点对应的日志中输出GDS每次收发的包裹类型、命令交互的对端以及其他交互相关的细节信息,方便记录Gaussdb端状态机的状态跳转,以及目前所处的状态信息。此参数打开会输出额外日志,增加日志IO开销,进而影响性能和日志的信息有效性,因此请仅在定位GDS问题时开启。 参数类型:USERSET 取值范围:布尔型 on表示开启GDS debug功能。 off表示不开启GDS debug功能。 默认值:off
共100000条