华为云用户手册

  • 函数类型解析 从系统表pg_proc中选择所有可能被选到的函数。如果使用了一个不带模式修饰的函数名称,那么认为该函数是那些在当前搜索路径中的函数。如果给出一个带修饰的函数名,那么只考虑指定模式中的函数。 如果搜索路径中找到了多个不同参数类型的函数。将从中选择一个合适的函数。 查找和输入参数类型完全匹配的函数。如果找到一个,则用之。如果输入的实参类型都是unknown类型,则不会找到匹配的函数。 如果未找到完全匹配,请查看该函数是否为一个特殊的类型转换函数。 寻找最优匹配。 抛弃那些输入类型不匹配并且也不能隐式转换成匹配的候选函数。unknown文本在这种情况下可以转换成任何东西。如果只剩下一个候选项,则用之,否则继续下一步。 遍历所有候选函数,保留那些输入类型匹配最准确的。此时,域被看作和它们的基本类型相同。如果没有一个函数能准确匹配,则保留所有候选。如果只剩下一个候选项,则用之,否则继续下一步。 遍历所有候选函数,保留那些需要类型转换时接受首选类型位置最多的函数。如果没有接受首选类型的函数,则保留所有候选。如果只剩下一个候选项,则用之,否则继续下一步。 如果有任何输入参数是unknown类型,检查剩余的候选函数对应参数位置的类型范畴。在每一个能够接受字符串类型范畴的位置使用string类型(这种对字符串的偏爱是合适的,因为unknown文本确实像字符串)。另外,如果所有剩下的候选函数都接受相同的类型范畴,则选择该类型范畴,否则抛出一个错误(因为在没有更多线索的条件下无法做出正确的选择)。现在抛弃不接受选定的类型范畴的候选函数,然后,如果任意候选函数在该范畴接受一个首选类型,则抛弃那些在该参数位置接受非首选类型的候选函数。如果没有一个候选符合这些测试则保留所有候选。如果只有一个候选函数符合,则使用它;否则,继续下一步。 如果同时有unknown和已知类型的参数,并且所有已知类型的参数有相同的类型,假设unknown参数也是这种类型,检查哪一个候选函数可以在unknown参数位置接受这种类型。如果正好一个候选符合,那么使用它。否则,产生一个错误。
  • 示例 示例1:圆整函数参数类型解析。只有一个round函数有两个参数(第一个是numeric,第二个是integer)。所以下面的查询自动把第一个类型为integer的参数转换成numeric类型。 1 2 3 4 5 gaussdb=# SELECT round(4, 4); round -------- 4.0000 (1 row) 实际上它被分析器转换成: 1 gaussdb=# SELECT round(CAST (4 AS numeric), 4); 因为带小数点的数值常量初始时被赋予numeric类型,因此下面的查询将不需要类型转换,并且可能会略微高效一些: 1 gaussdb=# SELECT round(4.0, 4); 示例2:子字符串函数类型解析。有好几个substr函数,其中一个接受text和integer类型。如果用一个未声明类型的字符串常量调用它,系统将选择接受string类型范畴的首选类型(也就是text类型)的候选函数。 1 2 3 4 5 gaussdb=# SELECT substr('1234', 3); substr -------- 34 (1 row) 如果该字符串声明为varchar类型,就像从表中取出来的数据一样,分析器将试着将其转换成text类型: 1 2 3 4 5 gaussdb=# SELECT substr(varchar '1234', 3); substr -------- 34 (1 row) 被分析器转换后实际上变成: 1 gaussdb=# SELECT substr(CAST (varchar '1234' AS text), 3); 分析器从pg_cast表中了解到text和varchar是二进制兼容的,意思是说一个可以传递给接受另一个的函数而不需要做任何物理转换。因此,在这种情况下,实际上没有做任何类型转换。 而且,如果以integer为参数调用函数,分析器将试图将其转换成text类型: 1 2 3 4 5 gaussdb=# SELECT substr(1234, 3); substr -------- 34 (1 row) 被分析器转换后实际上变成: 1 2 3 4 5 gaussdb=# SELECT substr(CAST (1234 AS text), 3); substr -------- 34 (1 row)
  • 功能描述 检查点(CHECKPOINT)是一个事务日志中的点,所有数据文件都在该点被更新以反映日志中的信息,所有数据文件都将被刷新到磁盘。 设置事务日志检查点。预写式日志(WAL)缺省时在事务日志中每隔一段时间放置一个检查点。可以使用gs_guc命令设置相关运行时参数(checkpoint_segments,checkpoint_timeout和incremental_checkpoint_timeout)来调整这个原子化检查点的间隔。
  • GLOBAL_STATIO_USER_TABLES GLOBAL_STATIO_USER_TABLES视图显示各节点的命名空间中所有用户关系表的I/O状态信息,如表1所示。 表1 GLOBAL_STATIO_USER_TABLES字段 名称 类型 描述 node_name name 节点名称。 relid oid 表OID。 schemaname name 该表模式名。 relname name 表名。 heap_blks_read bigint 从该表中读取的磁盘块数。 heap_blks_hit bigint 此表缓存命中数。 idx_blks_read bigint 从表中所有索引读取的磁盘块数。 idx_blks_hit bigint 表中所有索引命中缓存数。 toast_blks_read bigint 此表的TOAST表读取的磁盘块数(如果存在)。 toast_blks_hit bigint 此表的TOAST表命中缓冲区数(如果存在)。 tidx_blks_read bigint 此表的TOAST表索引读取的磁盘块数(如果存在)。 tidx_blks_hit bigint 此表的TOAST表索引命中缓冲区数(如果存在)。 父主题: Cache/IO
  • DB_TAB_COLUMNS DB_TAB_COLUMNS视图显示当前用户可访问的表和视图的列的描述信息。该视图同时存在于PG_CATA LOG 和SYS Schema下。该视图所有用户可访问,显示当前用户可访问的所有信息。 表1 DB_TAB_COLUMNS字段 名称 类型 描述 owner character varying(64) 表的所有者。 table_name character varying(64) 表的名称。 column_name character varying(64) 列的名称。 data_type character varying(128) 列的数据类型。 data_type_mod character varying(3) 暂不支持,值为NULL。 data_type_owner character varying(128) 列的数据类型的所有者。 data_length integer 列的字节长度。 data_precision integer 数据类型的精度,对于numeric数据类型有效,其他类型为NULL。 data_scale integer 小数点右边的位数,对于numeric数据类型有效,其他类型为0。 nullable bpchar 该列是否允许为空,对于主键约束和非空约束,该值为n。取值范围: y:允许。 n:不允许。 column_id integer 创建表时列的序号。 default_length numeric 列的默认值字节长度。 data_default text 列的默认值。 num_distinct numeric 列中不同值的数量。 low_value raw 列中的最小值。 high_value raw 列中的最大值。 density numeric 列密度。 num_nulls numeric 列中空值数。 num_buckets numeric 列的直方图的桶数。 last_analyzed timestamp(0) without time zone 上次分析的日期。 sample_size numeric 用于分析此列的样本量。 character_set_name character varying(44) 暂不支持,值为NULL。 char_col_decl_length numeric 字符类型列的声明长度。 global_stats character varying(3) 暂不支持,值为NO。 user_stats character varying(3) 暂不支持,值为NO。 avg_col_len numeric 列的平均长度(单位字节)。 char_length numeric 列的长度(以字符计),只对varchar,nvarchar2,bpchar,char类型有效。 char_used character varying(1) 暂不支持,varchar、bpchar和char类型值为B,nvarchar2类型值为C,其余值为NULL。 v80_fmt_image character varying(3) 暂不支持,值为NULL。 data_upgraded character varying(3) 暂不支持,值为YES。 histogram character varying(15) 表示直方图是否存在以及存在的类型: NONE:表示不存在直方图。 FREQUENCY:表示频率直方图。 EQUI_W IDT H:表示等宽直方图。 default_on_null character varying(3) 暂不支持,值为NULL。 identity_column character varying(3) 暂不支持,值为NULL。 evaluation_edition character varying(128) 暂不支持,值为NULL。 unusable_before character varying(128) 暂不支持,值为NULL。 unusable_beginning character varying(128) 暂不支持,值为NULL。 collation character varying(100) 列的排序规则。因该字段与保留关键字冲突,调用该字段需加视图名。 comments text 注释。 schema character varying(64) 列所属的名称空间的名称。 父主题: 其他系统视图
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 --建表并插入数据。 gaussdb=# CREATE TABLE tbl_person ( id integer, name varchar(20), gender varchar(5) CHECK(gender = '男' or gender = '女') ); gaussdb=# INSERT INTO tbl_person VALUES (1, 'Bob', '男'),(2, 'Anne', '女'),(3, 'Jack', '男'),(4, 'Danny', '男'),(5, 'Alice', '女'),(6, 'Susan', '女'); --将person表中所有男生的信息加入到新表中 gaussdb=# SELECT * INTO tbl_man FROM tbl_person WHERE gender = '男'; --查询tbl_man数据。 gaussdb=# SELECT * FROM tbl_man; id | name | gender ----+-------+----- 1 | Bob | 男 3 | Jack | 男 4 | Danny | 男 (3 rows) --删除表。 gaussdb=# DROP TABLE tbl_person, tbl_man;
  • 参数说明 new_table new_table指定新建表的名称。 UNLOGGED 指定表为非日志表。非日志表中写入的数据不会被写入到预写日志中,比普通表快很多。但是,非日志表在冲突或异常关机后会被自动删截,非日志表中的内容也不会被复制到备用服务器中,在该类表中创建的索引也不会被自动记录。 使用场景:非日志表不能保证数据的安全性,用户应该在确保数据已经做好备份的前提下使用,例如系统升级时进行数据的备份。 故障处理:当异常关机等操作导致非日志表上的索引发生数据丢失时,用户应该对发生错误的索引进行重建。 GLOBAL | LOCAL 创建临时表时可以在TEMP或TEMPORARY前指定GLOBAL或LOCAL关键字。如果指定GLOBAL关键字, GaussDB 会创建全局临时表,否则GaussDB会创建本地临时表。 TEMPORARY | TEMP 如果指定TEMP或TEMPORARY关键字,则创建的表为临时表。临时表分为全局临时表和本地临时表两种类型。创建临时表时如果指定GLOBAL关键字则为全局临时表,否则为本地临时表。 全局临时表的元数据对所有会话可见,会话结束后元数据继续存在。会话与会话之间的用户数据、索引和统计信息相互隔离,每个会话只能看到和更改自己提交的数据。全局临时表有两种模式:一种是基于会话级别的(ON COMMIT PRESERVE ROWS),当会话结束时自动清空用户数据;一种是基于事务级别的(ON COMMIT DELETE ROWS),当执行commit或rollback时自动清空用户数据。建表时如果没有指定ON COMMIT选项,则缺省为会话级别。与本地临时表不同,全局临时表建表时可以指定非pg_temp_开头的schema。 本地临时表只在当前会话可见,本会话结束后会自动删除。因此,在除当前会话连接的数据库节点故障时,仍然可以在当前会话上创建和使用临时表。由于临时表只在当前会话创建,对于涉及对临时表操作的DDL语句,会产生DDL失败的报错。因此,建议DDL语句中不要对临时表进行操作。TEMP和TEMPORARY等价。 本地临时表通过每个会话独立的以pg_temp_开头的schema来保证只对当前会话可见,因此,不建议用户在日常操作中手动删除以pg_temp_、pg_toast_temp_开头的schema。 如果建表时不指定TEMPORARY/TEMP关键字,而指定表的schema为当前会话的pg_temp_开头的schema,则此表会被创建为临时表。 如果其它会话正在使用全局临时表或索引,则无法对其执行ALTER/DROP操作。 全局临时表的DDL只会影响当前会话的用户数据和索引。例如truncate、reindex、analyze只对当前会话有效。 SELECT INTO的其它参数说明请参见参数说明。
  • 语法格式 [ WITH [ RECURSIVE ] with_query [, ...] ] SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] { * | {expression [ [ AS ] output_name ]} [, ...] } INTO [ [ GLOBAL | LOCAL ] [ TEMPORARY | TEMP ] | UNLOGGED ] [ TABLE ] new_table [ FROM from_item [, ...] ] [ WHERE condition ] [ GROUP BY expression [, ...] ] [ HAVING condition [, ...] ] [ WINDOW {window_name AS ( window_definition )} [, ...] ] [ { UNION | INTERSECT | EXCEPT | MINUS } [ ALL | DISTINCT ] select ] [ ORDER BY {expression [ [ ASC | DESC | USING operator ] | nlssort_expression_clause ] [ NULLS { FIRST | LAST } ]} [, ...] ] [ LIMIT { count | ALL } ] [ OFFSET start [ ROW | ROWS ] ] [ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ] [ {FOR { UPDATE | SHARE } [ OF table_name [, ...] ] [ NOWAIT |WAIT N]} [...] ];
  • PG_STATIO_ALL_INDEXES PG_STATIO_ALL_INDEXES视图可用来查询当前数据库中的每个索引行的信息,显示特定索引的I/O的统计信息。 表1 PG_STATIO_ALL_INDEXES字段 名称 类型 描述 relid oid 该索引所在的表的OID。 indexrelid oid 该索引的OID。 schemaname name 该索引的模式名。 relname name 该索引的表名。 indexrelname name 索引名称。 idx_blks_read bigint 从索引中读取的磁盘块数。 idx_blks_hit bigint 索引命中缓存数。 父主题: 其他系统视图
  • enable_gsplsql_execopt 参数说明:控制是否优化存储过程函数的执行。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示在存储过程初始化时分配并记录运行过程中不改变的信息,避免执行过程中无效的重复调用。 off:表示使用默认调用逻辑,每次循环都重新初始化信息。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • enable_force_smp 参数说明:控制是否强制开启SMP计划。参数开启后,代价模型默认拉起stream线程的代价为空,当设置并行度并且算子支持并行时强制选择并行路径。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示强制开启SMP计划。 off:表示不强制开启SMP计划。 默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。 该参数只对支持SMP的算子有效,具体请联系管理员。 另外,使用强制开启SMP还存在以下约束: SMP特性通过算子并行来提升性能,同时会占用更多的系统资源,包括CPU、内存、I/O等等。本质上SMP是一种以资源换取时间的方式,在合适的场景以及资源充足的情况下,合理设置并行度来较好地提升性能。 如果在不合适的场景下(如数据量较少),或资源不足的情况下,可能引起性能的劣化。 SMP非适用场景不支持此参数。
  • enable_partrouting_optimization 参数说明:控制是否支持分区表插入优化。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示支持分区表插入优化,针对INSERT、SELECT语句,当SELECT包含常量分区键时,INSERT只需要做一次分区路由,提升性能。 off:表示不支持分区表插入优化,插入每一条数据前都需要做一次分区路由去确定插入哪一张分区表。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:如果关闭该参数,部分插入分区表的场景会没有该参数带来的性能优化效果,无其他影响。 分区表插入优化约束: 只支持INSERT、SELECT语句。 INSERT INTO ta SELECT FROM tb中,插入a表中所有分区键的值,对应SELECT结果集中的列值必须是常量(可以不存在该列,因为默认值也是恒定的)。 INSERT INTO ta SELECT c,d FROM b WHERE tb.c='1'或SELECT '1' AS c, d FROM tb则可以判断结果列tb.c为常量。 INSERT INTO ta SELECT c,d FROM b WHERE tb.c=func('1'); 如果func()不是volatile函数,也不是包含非常量参数的stable/immutable函数,则可以判断tb.c为常量。 如果列值为聚合函数的返回值,如:INSERT INTO ta SELECT count(c),d FROM b WHERE tb.c='1' GROUP BY c, d; 不能判断count(c)为常量。 不支持UPSERT子句。 不支持包含before和instead触发器的表,因为可能改变要插入的数据。
  • enable_partition_autoextend_retry 参数说明:分区表自动扩展新增分区默认采用自治事务。该参数设置为on后,自治事务新增分区出现异常时,会重试一次同事务新增分区的逻辑。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示分区表采用自治事务自动扩展新增分区出现异常后,会重试一次同事务新增分区。 off:表示分区表采用自治事务自动扩展新增分区出现异常后,直接抛出异常。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置为off,分区表采用自治事务自动扩展新增分区出现异常后,直接抛出异常。
  • dynamic_procedure_cache_count 参数说明:用于控制存储过程执行期间可以缓存动态语句的最大条数,缓存数达到最大条数后不优化后续语句。多租场景下,该参数可在PDB级别设置。 参数类型:整型 参数单位:无 取值范围:0 ~ 1024,设置为0时表示不缓存。 默认值:128。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • enable_unique_checking_of_unusable_index 参数说明:控制当表中存在UNUSABLE的唯一索引时,插入和更新操作是否需要阻塞。 参数类型:布尔型 参数单位:无 取值范围: on:表示当表中存在UNUSABLE的唯一索引时,INSERT语句和涉及到索引的UPDATE语句会报错,提示先处理UNUSABLE的唯一索引。 off:表示当表中存在UNUSABLE的唯一索引时,INSERT语句和涉及到索引的UPDATE语句不会报错。 默认值:off 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:根据业务需要进行设置,推荐设置为on。 设置不当的风险与影响:如果打开该参数,为了保证唯一性约束,业务可能会存在大量报错;如果关闭该参数,会导致表中插入唯一索引列的重复数据,导致该索引无法直接重建。 该参数打开时: 对于astore表,更新非UNUSABLE索引的索引列时也会报错,因为会产生新的元组。 对于ustore非分区表,更新非UNUSABLE索引的索引列时不会报错;如果是非原地更新,更新非UNUSABLE索引的索引列时也会报错。 对于ustore分区表,UNUSABLE的唯一索引是全局索引时,更新分区键后若新数据与老数据不在同一分区,也会报错,因为会产生新的元组。 对于ustore分区表,UNUSABLE的唯一索引是包含分区键的LOCAL索引时,更新分区键也会报错。
  • enable_seqscan_fusion 参数说明:控制是否打开SeqScan优化。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示打开SeqScan优化。 off:表示关闭SeqScan优化。 默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。 该参数只能优化EXPLAIN ANALYZE语句的seqscan算子的执行时间。
  • cluster_run_mode 参数说明:双数据库实例容灾场景标识DN节点属于主数据库实例还是备数据库实例。单数据库实例使用默认值。 参数类型:枚举类型 参数单位:无 取值范围: cluster_primary:表示节点是主数据库实例的节点。 cluster_standby:表示节点是备数据库实例的节点。 默认值:cluster_primary 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:标记灾备数据库实例使用的参数,不建议客户设置。 设置不当的风险与影响:修改后可能导致灾备数据库实例异常。
  • acceleration_with_compute_pool 参数说明:在查询包含OBS时,通过该参数决定查询是否通过计算资源池进行加速。(由于规格变更,当前版本已经不再支持本特性,请不要使用) 参数类型:布尔型 参数单位:无 取值范围: on:表示包含有OBS的查询在计算资源池可用时,会根据代价评估决定是否通过计算资源池对查询加速。 off:表示任何查询都不会通过计算资源池进行加速。 默认值:off 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • max_concurrent_autonomous_transactions 参数说明:自治事务最大连接数,即同一时间自治事务执行的最大并发数。当设置为0时,将无法执行自治事务。 参数类型:整型 参数单位:无 取值范围:0 ~ 10000,理论最大值为10000,实际最大值为动态值,计算公式为“262143 - job_queue_processes - autovacuum_max_workers - max_inner_tool_connections - max_connections - AUXILIARY_BACKENDS - AV_LAUNCHER_PRO CS ”。其中,job_queue_processes、autovacuum_max_workers、max_inner_tool_connections和max_connections的值取决于对应GUC参数的设置;AUXILIARY_BACKENDS为预留辅助线程数,固定为20;AV_LAUNCHER_PROCS为预留autovacuum的launcher线程数,固定为2。 默认值:200(196核CPU/1536G内存,128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存);150(96核CPU/768G内存);120(80核CPU/640G内存);100(64核CPU/512G内存);80(60核CPU/480G内存);40(32核CPU/256G内存);20(16核CPU/128G内存);10(8核CPU/64G内存,4核CPU/32G内存,4核CPU/16G内存)。 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:根据实际业务需要和硬件配置设置此参数,建议不超过max_connections的1/10。若仅调大此参数,未同比例调整内存参数,业务压力大时,容易出现内存不足,报错提示“memory is temporarily unavailable”。 设置不当的风险与影响:若升级过程中涉及此参数范围变更,并且在commit前修改了此参数,则如果执行升级回滚,需要将此参数调整至升级前允许的范围,否则可能导致数据库无法启动。
  • enable_gpi_auto_update 参数说明:控制在分区DDL命令中是否默认更新Global索引。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示默认更新Global索引,此时无论分区DDL带不带UPDATE GLOBAL INDEX子句,都会更新Global索引。 off:表示默认不更新Global索引,此时只有当分区DDL带UPDATE GLOBAL INDEX子句时,才会更新Global索引。 默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:根据业务需要进行设置。 设置不当的风险与影响:设置为off,当分区DDL未带UPDATE GLOBAL INDEX子句时,会使Global索引不可用。
  • enable_gpi_fast_prune 参数说明:控制Ustore表的全局分区索引在DML过程中是否清理之前DDL操作产生的垃圾元组。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示清理,即除了AutoVacuum线程会清理DDL产生的垃圾元组,在DML过程中如果索引页面空间不够,也会触发DDL产生的垃圾元组的清理。 off:表示不清理,即只有AutoVacuum线程会清理DDL产生的垃圾元组。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:根据业务需要进行设置。如果业务有分区表和全局分区索引,且存在比较多的DDL操作和DML操作,则建议进行开启。如果业务的分区表没有全局分区索引或者没有分区表的DDL操作,则建议进行关闭。 设置不当的风险与影响:设置为off,即只有AutoVacuum线程会清理DDL产生的垃圾元组,则GPI索引空间可能会发生膨胀。
  • consistency_check_module 参数说明:用于设置需要进行一致性校验的模块。 参数类型:字符串 参数单位:无 默认值:'off(ALL)'。即默认关闭所有模块的校验。 取值范围:模块在开启状态(on)下会进行一致性校验,在关闭状态(off)下不会进行校验,可由SHOW consistency_check_module查看: ALL,on(),off(INDEX) 当前支持校验的模块只有INDEX模块,INDEX模块的校验是指在Astore表B-Tree的索引扫描IndexScan的过程中,会校验索引元组与堆表元组的一致性。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 首先,可以通过SHOW consistency_check_module来查看哪些模块是支持校验的。当前支持校验模块的输出结果如下所示: 1 2 3 4 5 gaussdb=# show consistency_check_module; consistency_check_module -------------------------- ALL,on(),off(INDEX) (1 row) 支持可校验的模块使用大写来标识,特殊标识ALL用于对所有模块进行设置。可以使用on/off来控制是否进行校验。比如设置校验索引与堆表的一致性校验可使用如下命令: 1 2 3 4 5 6 7 gaussdb=# set consistency_check_module='on(INDEX)'; SET gaussdb=# show consistency_check_module; consistency_check_module -------------------------- ALL,on(INDEX),off() (1 row) 可以看到模块INDEX的校验被打开。 ALL标识相当于一个快捷操作,即对所有模块的校验进行开启或关闭。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 gaussdb=# set consistency_check_module='off(ALL)'; SET gaussdb=# show consistency_check_module; consistency_check_module -------------------------- ALL,on(),off(INDEX) (1 row) gaussdb=# set consistency_check_module='on(ALL)'; SET gaussdb=# show consistency_check_module; consistency_check_module -------------------------- ALL,on(INDEX),off() (1 row) 设置建议:根据需要开启对应模块的校验。 设置不当的风险与影响:开启时会在一些SQL的执行流程中进行一致性校验操作,会有额外的耗时或性能影响,请谨慎使用。
  • dfs_partition_directory_length 参数说明:在HDFS文件系统上,构造HDFS VALUE分区表的分区目录时,目录名长度的上限值。 参数类型:整型 参数单位:无 取值范围:92 ~ 7999 默认值:512 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • server_encoding 参数说明:报告当前数据库的服务端编码字符集。 默认情况下,gs_initdb会根据创建数据库时的系统环境初始化此参数,通过locale命令可以查看当前的配置环境。 参数类型:字符串 参数单位:无 取值范围:字符串 默认值:在创建数据库的时候由系统环境决定。 设置方式:该参数属于INTERNAL类型参数,为固定参数,用户无法修改此参数,只能查看。 设置建议:该参数不允许用户进行设置,只能查看。 设置不当的风险与影响:无
  • enable_upgrade_merge_lock_mode 参数说明:当该参数设置为on时,通过提升deltamerge内部实现的锁级别,避免和update/delete并发操作导致的报错。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:提升deltamerge内部实现的锁级别,并发执行deltamerge和update/delete操作时,一个操作先执行,另一个操作被阻塞,在前一个操作完成后,后一个操作再执行。 off:在对表的delta table的同一行并发执行deltamerge和update/delete操作时,后一个对同一行数据更新的操作会报错退出。 默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • integer_datetimes 参数说明:报告是否支持64位整数形式的日期和时间格式。 参数类型:布尔型 参数单位:无 取值范围: on:表示支持64位整数形式的日期和时间格式。 off:表示不支持64位整数形式的日期和时间格式。 默认值:on 设置方式:该参数属于INTERNAL类型参数,为固定参数,用户无法修改此参数,只能查看。 设置建议:该参数不允许用户进行设置,只能查看。 设置不当的风险与影响:无
  • reserve_space_for_nullable_atts 参数说明:指定是否为Ustore表的可空属性预留空间。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示为Ustore表的可空属性预留空间。 off:表示不为Ustore表的可空属性预留空间。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • basebackup_timeout 参数说明:备份传输完成后连接无读写的超时时间。该参数可在PDB级别设置。 通过gs_basebackup工具作传输时,如果指定较高压缩率,可能在传输表空间完成后超时(客户端需要压缩传输数据)。 参数类型:整型 参数单位:s(秒) 取值范围:0 ~ 2147483647,其中0表示禁用该功能。 默认值:600。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。例如,不带单位取值600,表示basebackup_timeout为600s;带单位取值10min,表示basebackup_timeout为10min。取值如果要带单位,必须为s、min、h、d。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • datanode_heartbeat_interval 参数说明:设置心跳线程间发送心跳消息的时间间隔。 参数类型:整型 参数单位:ms(毫秒) 取值范围:1000 ~ 60000 默认值:1000(即1s) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。例如,不带单位取值1000,表示datanode_heartbeat_interval为1000ms;带单位取值1s,表示datanode_heartbeat_interval为1s。取值如果要带单位,必须为ms、s、min、h、d。 设置建议:建议取值不超过wal_receiver_timeout/2。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • enable_default_ustore_table 参数说明:指定是否默认使用Ustore存储引擎。仅当enable_ustore参数开启时,该参数设置有效。该参数为on时,创建的表默认都为Ustore表;该参数为off时,创建的表默认都为Astore表。该参数可在PDB级别设置。升级场景下该参数的默认值会优先保证兼容性,即升级后的默认值与老版本的取值一致。 参数类型:布尔型 参数单位:无 取值范围: on:表示默认使用Ustore存储引擎。 off:表示默认不使用Ustore存储引擎。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:需要特别注意的是,使用Ustore表时,必须要开启track_counts和track_activities参数,否则会引起空间膨胀。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全