华为云用户手册

  • max_opt_sort_rows 参数说明:控制order by子句中最大优化的limit+offset行数。该参数仅8.3.0及以上集群版本支持。 参数类型:USERSET 取值范围:整型,0~INT_MAX 取值为0时:表示参数不生效。 取值为其他值时:表示order by子句中limit+offset行数小于该值时,优化生效,大于该值时,优化不生效。优化后耗时减小,但内存消耗可能增大。 默认值:0
  • enable_hashfilter_test 参数说明:该参数用于控制是否为基表扫描增加分布列的hashfilter,以便确认结果是否符合预期。同时,在数据插入时,控制是否进行DN准确性校验(即校验当前数据是否应该插入当前DN)。该参数仅8.2.1.300及以上集群版本支持。 参数类型:USERSET 取值范围:布尔型 off:不为基表扫描添加分布列的hashfilter并在数据插入时不进行DN准确性校验。 on:为基表扫描添加分布列的hashfilter,并在数据插入时进行DN准确性校验。 默认值:on 此参数仅对hash分布的表有效。 当该参数设置为on后,因在数据插入时会进行DN准确性校验,会影响数据插入性能。
  • 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
  • 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在只被引用一次时支持下推。 取值为2时,在1的基础上,扩展支持在复制CTE结果的目标列中包含volatile函数时的下推。 取值为1时,扩展支持nextval、uuid_generate_v1、sys_guid、uuid函数出现在语句目标列时的完全下推。 取值为0时,支持random类函数的完全下推,nextval、uuid_generate_v1函数仅在INSERT含有简单查询语句的部分下推。 默认值:3
  • 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
  • enable_nodegroup_debug 参数说明:控制优化器在多Node Group环境下,是否使用强制弹性计算。Node Group目前为内部用机制,用户无需设置。 该参数只在expected_computing_nodegroup被设置为具体Node Group时生效。 参数类型:USERSET 取值范围:布尔型 on表示强制将计算弹性到expected_computing_nodegroup所指定的Node Group进行计算。 off表示不强制使用某个Node Group进行计算。 默认值:off
  • 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秒。
  • checkpoint_segments 参数说明:设置checkpoint_timeout周期内所保留的最少WAL日志段文件数量。每个日志文件大小为16MB。 参数类型:SIGHUP 取值范围:整型,最小值1 默认值:64 提升此参数可加快大数据的导入速度,但需要结合checkpoint_timeout、shared_buffers这两个参数统一考虑。这个参数同时影响WAL日志段文件复用数量,通常情况下pg_xlog文件夹下最大的复用文件个数为2倍的checkpoint_segments个,复用的文件被改名为后续即将使用的WAL日志段文件,不会被真正删除。
  • 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缓冲区的内容都写入到磁盘中,因此设置为很大的值不会带来明显的性能提升。如果将它设置成几百兆,就可以在有很多即时事务提交的服务器上提高写入磁盘的性能。根据经验来说,默认值可以满足大多数的情况。
  • commit_delay 参数说明:表示一个已经提交的数据在WAL缓冲区中存放的时间。 参数类型:USERSET 取值范围:整型, 0~100000(微秒),其中0表示无延迟。 默认值:0 设置为非 0 值时事务执行commit后不会立即写入WAL中,而仍存放在WAL缓冲区中,等待WalWriter进程周期性写入磁盘。 如果系统负载很高,在延迟时间内,其他事务可能已经准备好提交。但如果没有事务准备提交,这个延迟就是在浪费时间。
  • 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,否则将导致数据库无法启动。
  • 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
  • vacuum_cost_delay 参数说明:指定开销超过vacuum_cost_limit的值时,进程睡眠的时间。 参数类型:USERSET 取值范围:整型,0~100,单位为毫秒(ms)。正数值表示打开基于开销的清理延迟特性;0表示关闭基于开销的清理延迟特性。 默认值:0 许多系统上,睡眠的有效分辨率是10毫秒。因此把vacuum_cost_delay设置为一个不是10的整数倍的数值与将它设置为下一个10的整数倍作用相同。 此参数一般设置较小,常见的设置是10或20毫秒。调整此特性资源占用率时,最好是调整其他参数,而不是该参数。
  • max_files_per_node 参数说明:限制单个节点上单个SQL打开的文件最大数量。通常情况下,不需要设置此参数。该参数仅8.1.3及以上集群版本支持。 参数类型:SUSET 取值范围:整型,-1~INT_MAX,其中-1表示不限制最大数量。 默认值:-1 新装集群中该参数的默认值为-1,升级场景该参数的默认值为保持前向兼容维持原值。 执行语句报错“The last file name is [%s] and %d files have already been opened on data node [%s] with a maximum of %d files.”时,请尝试增大max_files_per_node值。
  • bi_page_reuse_factor 参数说明:行存表批量插入场景下,主备DN使用页复制进行数据同步时,可以复用的旧页面空闲空间的百分比。 参数类型:USERSET 取值范围:整型,0~100,单位为%。其中0表示不对页面进行复用,全部申请新页面。 默认值:70 不建议将此值设置为50以下(0除外),如果复用页面的空闲空间较小的话,会使主备DN间传输过多的旧页面数据,从而导致批量插入性能下降。 不建议将此值设置为90以上,如果此值设置过高,会导致频繁查询空闲页面,但又无法复用旧页面,得不偿失。
  • temp_file_limit 参数说明:语句执行过程中触发落盘操作时,限制语句中单个线程落盘文件的总空间大小。例如,排序和哈希表使用的临时文件或者游标占用的临时文件。 此设置为会话级别的落盘文件控制。 参数类型:SUSET 取值范围:整型,-1~INT_MAX,单位为KB。其中-1表示没有限制。 默认值:配置temp_file_limit为实例所在磁盘空间总容量的10%。 SQL查询执行时使用的临时表空间不在此限制。
  • sql_use_spacelimit 参数说明:限制单个SQL在单个DN上,触发写盘操作时,所有类型写盘文件的总空间大小,管控的空间包括普通表、临时表以及中间结果集落盘占用的空间。系统管理员用户也受该参数限制。 参数类型:USERSET 取值范围:整型,-1~INT_MAX,单位为KB。其中-1表示没有限制。 默认值:配置sql_use_spacelimit为实例所在磁盘空间总容量的10%。 例如,执行语句中配置参数sql_use_spacelimit=100,当出现单DN写盘超过100kB时,DWS会主动终止该query的运行,并提示用户单DN写盘量超阈值。 1 2 insert into user1.t1 select * from user2.t1; ERROR: The space used on DN (104 kB) has exceeded the sql use space limit (100 kB). 建议处理方式: 优化语句,减少语句写盘占用空间。 如果磁盘空间充足可以适当调大该参数。
  • buffer_ring_ratio 参数说明:设置并行导出时使用环形缓冲区的阈值大小。 参数类型:USERSET 取值范围:整型,1~1000 默认值:250 默认值表示阈值为shared_buffers的250/1000即1/4。 最小为shared_buffers的1/1000。 最大为shared_buffers的大小。 设置建议:导出时出现缓存命中率不符合预期的场景建议在DN中设置此参数。
  • work_mem 参数说明:设置内部排序操作和Hash表在开始写入临时磁盘文件之前使用的内存大小。ORDER BY,DISTINCT和merge joins都要用到排序操作。Hash表在散列连接、散列为基础的聚集、散列为基础的IN子查询处理中都要用到。 对于复杂的查询,可能会同时并发运行好几个排序或者散列操作,每个都可以使用此参数所声明的内存量,不足时会使用临时文件。同样,好几个正在运行的会话可能会同时进行排序操作。因此使用的总内存可能是work_mem的好几倍。 参数类型:USERSET 取值范围:整型,64~INT_MAX,单位为KB。 默认值:小规格内存为512MB, 大规格内存为2GB(max_process_memory大于等于30GB为大规格内存,否则为小规格内存)。 设置建议: 依据查询特点和并发来确定,一旦work_mem限定的物理内存不够,算子运算数据将写入临时表空间,带来5-10倍的性能下降,查询响应时间从秒级下降到分钟级。 对于串行无并发的复杂查询场景,平均每个查询有5-10关联操作,建议work_mem=50%内存/10。 对于串行无并发的简单查询场景,平均每个查询有2-5个关联操作,建议work_mem=50%内存/5。 对于并发场景,建议work_mem=串行下的work_mem/物理并发数。
  • query_max_mem 参数说明:设置执行作业所能够使用的最大内存。如果设置的query_max_mem值大于0,在生成执行计划时,优化器会根据该值来设置算子的可用内存。当作业执行时所使用内存超过该值时,将报错退出。 参数类型:USERSET 取值范围:整型,0,或大于32MB的整型,单位为KB。如果设置值为小于32MB,系统会自动将该参数设置为默认值0,此时优化器不会根据该值限制作业的内存使用。 默认值:0
  • max_prepared_transactions 参数说明:设置可以同时处于"预备"状态的事务的最大数目。增加此参数的值会使GaussDB(DWS)比系统默认设置需要更多的System V共享内存。 当GaussDB(DWS)部署为主备双机时,在备机上此参数的设置必须要高于或等于主机上的,否则无法在备机上进行查询操作。 参数类型:POSTMASTER 取值范围:整型,0~536870911,其中CN取值为0表示关闭预备事务的特性。 默认值:CN节点为800, DN节点为800 为避免在准备步骤失败,此参数的值不能小于max_connections。
共100000条