华为云用户手册

  • 示例 添加/删除审计策略中的操作类型。 --创建一个对数据库执行CREATE的审计策略adt1。 gaussdb=# CREATE AUDIT POLICY adt1 PRIVILEGES CREATE; --添加adt1审计策略中的DROP。 gaussdb=# ALTER AUDIT POLICY adt1 ADD PRIVILEGES (DROP); --删除adt1审计策略中的DROP。 gaussdb=# ALTER AUDIT POLICY adt1 REMOVE PRIVILEGES (DROP); 修改审计策略的注释信息。 --修改adt1审计策略的注释信息为adt1_comments。 gaussdb=# ALTER AUDIT POLICY adt1 COMMENTS 'adt1_comments'; 修改审计策略的过滤信息。 --创建bob_audit用户。 gaussdb=# CREATE USER bob_audit PASSWORD '********'; --修改adt1审计策略的过滤用户为bob_audit。 gaussdb=# ALTER AUDIT POLICY adt1 MODIFY (FILTER ON (ROLES(bob_audit))); --删除bob_audit用户。 gaussdb=# DROP USER bob_audit; 删除审计策略的过滤条件。 --删除adt1审计策略的过滤条件。 gaussdb=# ALTER AUDIT POLICY adt1 DROP FILTER; 关闭审计策略。 --关闭adt1审计策略。 gaussdb=# ALTER AUDIT POLICY adt1 DISABLE; --删除adt1审计策略。 gaussdb=# DROP AUDIT POLICY adt1;
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 --创建基本表table_for_label。 gaussdb=# CREATE TABLE table_for_label(col1 int, col2 text); --创建资源标签table_label。 gaussdb=# CREATE RESOURCE LABEL table_label ADD COLUMN(table_for_label.col1); --将col2添加至资源标签table_label中。 gaussdb=# ALTER RESOURCE LABEL table_label ADD COLUMN(table_for_label.col2); --将资源标签table_label中的一项移除。 gaussdb=# ALTER RESOURCE LABEL table_label REMOVE COLUMN(table_for_label.col1); --删除资源标签table_label。 gaussdb=# DROP RESOURCE LABEL table_label; --删除基本表table_for_label。 gaussdb=# DROP TABLE table_for_label;
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 -- 如果需要游标循环并发执行,需要打开以下GUC参数 gaussdb=# SET query_dop=4; SET gaussdb=# SET sql_beta_feature='enable_plsql_smp'; SET gaussdb=# BEGIN FOR ROW_TRANS IN SELECT first_name FROM hr.staffs LOOP DBE_OUTPUT.PRINT_LINE (ROW_TRANS.first_name ); END LOOP; END; / Tom ANONYMOUS BLOCK EXECUTE --创建表 gaussdb=# CREATE TABLE integerTable1( A INTEGER); CREATE TABLE gaussdb=# CREATE TABLE integerTable2( B INTEGER); CREATE TABLE gaussdb=# INSERT INTO integerTable2 VALUES(2); INSERT 0 1 --多游标共享游标属性的标量 gaussdb=# DECLARE CURSOR C1 IS SELECT A FROM integerTable1;--声明游标 CURSOR C2 IS SELECT B FROM integerTable2; PI_A INTEGER; PI_B INTEGER; BEGIN OPEN C1;--打开游标 OPEN C2; FETCH C1 INTO PI_A; ---- C1%FOUND 和 C2%FOUND 值为 FALSE FETCH C2 INTO PI_B; ---- C1%FOUND 和 C2%FOUND 的值都为 TRUE --判断游标状态 IF C1%FOUND THEN IF C2%FOUND THEN DBE_OUTPUT.PRINT_LINE('Dual cursor share parameter.'); END IF; END IF; CLOSE C1;--关闭游标 CLOSE C2; END; / ANONYMOUS BLOCK EXECUTE --删除临时表 gaussdb=# DROP TABLE integerTable1; DROP TABLE gaussdb=# DROP TABLE integerTable2; DROP TABLE
  • vacuum_freeze_table_age 参数说明:指定VACUUM对全表的扫描冻结元组的时间。如果当前事务号与表pg_class.relfrozenxid64字段的差值已经大于参数指定的时间时,VACUUM对全表进行扫描。 参数类型:整型 参数单位:无 取值范围:0~576 460 752 303 423 487 尽管随时可以将此参数设为上述取值范围之间的值,但是,VACUUM将默认其有效值范围限制在autovacuum_freeze_max_age的95%以内。定期的手动VACUUM可以在对此表的反重叠自动清理启动之前运行。 默认值:4000000000 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。
  • max_compile_functions 参数说明:设置服务器存储的函数编译结果的最大数量。 参数类型:整型 参数单位:无 取值范围:1 ~ 2147483647 默认值:1000(196核CPU/1536G内存,128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存,8核CPU/64G内存,4核CPU/32G内存);10(4核CPU/16G内存) 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:存储过多的函数和存储过程的编译结果可能占用很大内存。将此参数设置为一个合理的值,有助于减少内存占用,提升系统性能。
  • vacuum_freeze_min_age 参数说明:指定VACUUM在扫描一个表时用于判断是否用FrozenXID替换记录的xmin字段(在同一个事务中)。 参数类型:整型 参数单位:无 取值范围:0 ~ 576 460 752 303 423 487 尽管随时可以将此参数设为上述取值范围之间的任意值,但是,VACUUM将默认其有效值范围限制在autovacuum_freeze_max_age的50%以内。 默认值:2000000000 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。
  • temp_tablespaces 参数说明:当一个CREATE命令没有明确指定一个表空间时,temp_tablespaces指定了创建临时对象(临时表和临时表的索引)所在的表空间。在这些表空间中创建临时文件用来做大型数据的排序工作。 其值是一系列表空间名的列表。如果列表中有多个表空间时,每次临时对象的创建, GaussDB 会在列表中随机选择一个表空间;如果在事务中,连续创建的临时对象被放置在列表里连续的表空间中。如果选择的列表中的元素是一个空串,GaussDB将自动将当前的数据库设为默认的表空间。 该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 取值范围:字符串。空字符串表示所有的临时对象仅在当前数据库默认的表空间中创建,请参见default_tablespace。 默认值:空
  • check_function_bodies 参数说明:设置是否在CREATE FUNCTION执行过程中进行函数体字符串的合法性验证。为了避免产生问题(比如避免从转储中恢复函数定义时向前引用的问题),偶尔会禁用验证。开启后主要验证存储过程中PL/SQL的词语法问题,包括数据类型、语句和表达式等,对于其中出现的SQL则在Create阶段不做检查而采用了运行时检查的方式。 该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 取值范围:布尔型 on表示在CREATE FUNCTION执行过程中进行函数体字符串的合法性验证。 off表示在CREATE FUNCTION执行过程中不进行函数体字符串的合法性验证。 默认值:on
  • session_replication_role 参数说明:控制当前会话与复制相关的触发器和规则的行为。 该参数属于SUSET类型参数,请参见表1中对应设置方法进行设置。 设置此参数会丢弃之前任何缓存的执行计划。 取值范围:枚举类型 origin表示从当前会话中复制插入、删除、更新等操作。 replica表示从其他地方复制插入、删除、更新等操作到当前会话。 local表示函数执行复制时会检测当前登录数据库的角色并采取相应的操作。 默认值:origin
  • default_transaction_isolation 参数说明:设置默认的事务隔离级别。 该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 当前版本暂不支持设置默认的事务隔离级别,默认为read committed,请勿自行修改。 取值范围:枚举类型 read committed表示事务读已提交。 repeatable read表示事务可重复读。 serializable,GaussDB目前功能上不支持此隔离级别,等价于repeatable read。 默认值:read committed
  • 语法格式 CREATE TABLESPACE tablespace_name [ OWNER user_name ] [ RELATIVE ] LOCATION 'directory' [ MAXSIZE 'space_size' ] [with_option_clause]; 其中普通表空间的with_option_clause为: WITH ( {filesystem= { ' general ' | " general " | general } | address = { ' ip:port [, ... ] ' | " ip:port [, ... ] " } | cfgpath = { ' path ' | " path " } | storepath = { ' rootpath ' | " rootpath " } | random_page_cost = { ' value ' | " value " | value } | seq_page_cost = { ' value ' | " value " | value }}[, ... ])
  • 示例 --创建表空间。 gaussdb=# CREATE TABLESPACE tbs_location1 RELATIVE LOCATION 'test_tablespace/test_tablespace_1'; --创建表空间指定最大值。 gaussdb=# CREATE TABLESPACE tbs_location2 RELATIVE LOCATION 'test_tablespace/test_tablespace_2' MAXSIZE '10G'; --查询表空间信息。 gaussdb=# SELECT * FROM pg_tablespace WHERE spcname = 'tbs_location2'; spcname | spcowner | spcacl | spcoptions | spcmaxsize | relative ---------------+----------+--------+------------+------------+---------- tbs_location2 | 10 | | | 10485760 K | t (1 row) --创建用户joe。 gaussdb=# CREATE ROLE joe IDENTIFIED BY '********'; --创建表空间,且所有者指定为用户joe。 gaussdb=# CREATE TABLESPACE tbs_location3 OWNER joe RELATIVE LOCATION 'test_tablespace/test_tablespace_3'; --删除表空间及用户。 gaussdb=# DROP TABLESPACE tbs_location1; gaussdb=# DROP TABLESPACE tbs_location2; gaussdb=# DROP TABLESPACE tbs_location3; gaussdb=# DROP ROLE joe;
  • enable_ai_watchdog_forcible_oom_detection 参数说明:强制开启或关闭AI Watchdog的OOM探测功能,若关闭该参数,则会自动根据当前数据库的规格判断是否需要启动OOM探测功能。自动判断模式下,对于max_process_memory 设置为64GB及以上的场景,才会启动OOM探测功能。由于OOM探测功能依赖内存管理模块获取的信息,因此,如果内存管理模块未开启或失效,则OOM探测功能也无法启用。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启。 off:表示关闭。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议设置为默认值。如开启可能会对系统性能产生影响。
  • feedback_model_expired_time 参数说明:该参数用于设置基数反馈模型超时时间,过期的模型会定期被清理。 参数类型:整型 参数单位:毫秒 取值范围:500 ~ 2147483647 默认值:1000*60*60*24 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议设置为默认值。如果超时时间设置过久则会造成系统性能下降;如果设置过短则会导致模型没有过期便被清理掉而影响功能。
  • feedback_collection_expired_time 参数说明:该参数用于设置基数反馈模型超时时间,过期的算子模型会定期被清理。 参数类型:整型 参数单位:毫秒 取值范围:50 ~ 2147483647 默认值:1000*60*60 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议设置为默认值。如果超时时间设置过久则会造成系统性能下降;如果设置过短则会导致模型没有过期便被清理掉而影响功能。
  • adaptive_cost_min_time 参数说明:该参数用于设置基数反馈收集的SQL时间阈值,只有执行时间大于该值的语句反馈会被收集。 参数类型:整型 参数单位:毫秒 取值范围:0 ~ 2147483647 默认值:1000 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议设置为需要调优的慢查询执行时长的20%。如果过低可能造成1%左右系统性能下降;如果设置过长则会导致能够被自动调优的查询不在功能生效范围内。
  • adaptive_costest_strategy 参数说明:该参数用于设置代价评估使用新/旧代价的策略。 参数类型:枚举类型 参数单位:无 取值范围:"L0"、"L1" "L0":只有在基数估计正确(比如使用反馈基数估计)的时候才会触发新代价。 "L1":优先使用新的代价模型计算。 默认值:"L0" 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议设置为默认值。
  • adaptive_costmodel_calibration_interval 参数说明:该参数用于设置代价模型矫正逻辑的间隔时间。 参数类型:整型 参数单位:毫秒 取值范围:0 ~ 2147483647。0表示关闭自动触发代价模型矫正功能。 默认值:1000*60*60 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议设置为默认值。如果该参数设置过小会导致代价模型经常触发矫正功能从而造成性能劣化;如果设置过大则会导致模型矫正不及时性能不优。
  • enable_operator_prefer 参数说明:该参数用于指定是否开启算子倾向性规则,在估计代价相近的情况下,倾向于选择参数化路径执行表连接。 该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 取值范围:布尔型 on表示开启参数化路径优先。 off表示不开启参数化路径优先。 默认值:off 此参数生效有两个必要的前置条件: 参数化路径被生成。 参数化路估计的代价和其他索引扫描算子类似。
  • enable_adaptive_cost 参数说明:该参数用于设置基于反馈的优化器基数和代价矫正功能总开关,打开后开启算子信息收集流程和基数估计流程,后端模型维护的启动线程会随此参数开关启动或退出。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启算子信息流程和基数估计流程。 off:表示关闭算子信息流程和基数估计流程。 默认值: on:新安装的数据库的默认值。 off:505.1.0版本之前的数据库升级后的默认值。 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议设置为默认值。请根据实际需要开启/关闭此参数。
  • adaptive_cardest_strategy 参数说明:该参数用于设置选择基数估计模型偏好。 参数类型:枚举类型 参数单位:无 取值范围:"auto"、"use_statistics"、"use_feedback" "auto":自适应模式,自动根据估计的历史准确性判断是使用统计方法还是反馈方法。 "use_statistics":优先使用统计信息做基数估计。 "use_feedback":优先使用反馈模型做基数估计。 默认值:"auto" 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议设置为默认值。
  • enable_feedback_cardest 参数说明:该参数用于另外设置的基于反馈的优化器基数和代价矫正功能开关,用于开发人员诊断模型相关问题。当enable_adaptive_cost参数设置为off,该参数设置为on时,算子信息仍会被收集,反馈基数估计接口仍会被调用,但此时后端自动模型维护的线程不会被启用,开发人员可以通过gs_acm_analyze_workload_manual()函数手动训练模型诊断问题。 参数类型:布尔型 参数单位:无 取值范围: on:算子信息会被收集,且反馈基数估计接口仍会被调用,但后端自动模型维护的线程并不会被启用。 off:控制完全交由enable_adaptive_cost参数控制。 默认值: on:新安装的数据库的默认值 off:505.1.0版本之前的数据库升级后的默认值 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议设置为默认值,以便开发人员诊断模型相关问题。如不需要可以关闭并将控制完全交给enable_adaptive_cost参数,但这样做会牺牲一定的灵活性。
  • db4ai_snapshot_mode 参数说明:snapshot有2种模式:MSS(物化模式,存储数据实体)和 CSS (计算模式,存储增量信息)。 参数类型:字符串 参数单位:无 取值范围:"MSS"," CS S" "MSS":表示物化模式,db4ai在创建快照的时候存储数据实体。 "CSS":表示计算模式,db4ai在创建快照的时候存储增量信息。 默认值:"MSS" 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议设置为默认值。根据需要进行模式切换。
  • multi_stats_type 参数说明:该参数用于指定在enable_ai_stats为on状态下创建的统计信息类别。 该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 取值范围:枚举类型,有效值为"BAYESNET"、"MCV"、"ALL"。 "BAYESNET":只创建智能统计信息。 "MCV":只创建传统统计信息。 "ALL":同时创建传统统计信息和智能统计信息。 默认值:"BAYESNET"
  • enable_cachedplan_mgr 参数说明:该参数用于指定是否开启自适应计划选择功能。自适应计划选择弥补了传统单一缓存计划无法根据查询条件参数进行变化带来的性能问题,并且避免了频繁调用查询优化。开启此功能用户可以通过维护多个缓存计划实现适应不同的查询参数,从而提升查询执行性能。 参数类型:布尔型 参数单位:无 取值范围: on:表示允许使用多计划缓存功能。 off:表示不允许使用多计划缓存功能。 默认值:on 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议设置为默认值。开启此参数有助于提升查询性能,关闭此参数可能导致查询性能的降低。
  • maximal_feedback_model_num 参数说明:该参数用于设置基数反馈模型数量上限,超过此上限后不再训练新的模型。 参数类型:整型 参数单位:个 取值范围:-1 ~ 1000000。值为-1表示无上限。 默认值:10000 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议设置为默认值。如果基数反馈模型数量上限设置过小可能会出现系统因无法训练新的模型而导致反馈基数估计功能失效;如果数量上限设置过大可能会影响系统性能,造成系统性能下降。
  • enable_hypo_index 参数说明:该参数控制数据库的优化器进行EXPLAIN时是否考虑创建的虚拟索引。通过对特定的查询语句执行explain,用户可根据优化器给出的执行计划评估该索引是否能够提升该查询语句的执行效率。 该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 取值范围:布尔型 on表示在进行EXPLAIN时创建虚拟索引。 off表示在进行EXPLAIN时不创建虚拟索引。 默认值:off
  • 语法格式 SELECT select_expressions INTO [STRICT] target FROM ... SELECT INTO [STRICT] target [FROM ..] EXECUTE [IMMEDIATE] select_expressions BULK COLLECT INTO target ... 对以上语法格式的解释如下: select_expressions:查询的SQL语句。通过基础SQL命令加INTO子句可以将单行或多列的结果赋值给一个变量(记录、行类型、标量变量列表)。 target :目标变量。可以是一个记录变量、一个行变量或一个有逗号分隔的简单变量和记录/行域列表。 STRICT:可选。在开启参数set behavior_compat_options = 'select_into_return_null'的前提下(默认未开启),若指定该选项则该查询必须刚好返回一行不为空的结果集,否则会报错,报错信息可能是NO_DATA_FOUND(没有行)、TOO_MANY_ROWS(多于一行)或QUERY_RETURNED_NO_ROWS (没有数据返回)。若不指定该选项则没有该限定,且支持返回空结果集。 BULK COLLECT INTO只支持批量赋值给数组或集合。集合类型合理使用LIMIT字段避免操作过量数据导致性能下降。 INTO/BULK COLLECT INTO只支持4层以下Record类型直接嵌套。 返回空结果集需要数据库初始化使用PG兼容参数,配置GUC参数set behavior_compat_options = 'select_into_return_null'为开启。配置GUC参数set behavior_compat_options = ''则关闭。 对于数组变量,小括号“()”将优先识别为下标,因此对于带括号的表达式,不支持写在数组变量后面。如对于select (1+3) into va(5),不支持写为select into va(5) (1+3)或select into va[5] (1+3)。 INSERT INTO、UPDATE INTO、DELETE INTO和EXECUTION INTO不支持返回空结果集。 给多个变量赋值时,由于后面的变量存在语法错误,所以均不赋值。 BULK COLLECT INTO只支持在A兼容性数据库下使用。 IMMEDIATE关键字仅用作语法兼容,无实际意义。
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 --创建一个表tb_for_label。 gaussdb=# CREATE TABLE tb_for_label(col1 text, col2 text, col3 text); --基于表创建资源标签。 gaussdb=# CREATE RESOURCE LABEL IF NOT EXISTS table_label add TABLE(public.tb_for_label); --再次创建已存在的表资源标签,对比加参数IF NOT EXISTS与不加IF NOT EXISTS参数的区别。 gaussdb=# CREATE RESOURCE LABEL IF NOT EXISTS table_label add TABLE(public.tb_for_label); NOTICE: table_label label already defined, skipping CREATE RESOURCE LABEL gaussdb=# CREATE RESOURCE LABEL table_label add TABLE(public.tb_for_label); ERROR: table_label label already defined --基于列创建资源标签。 gaussdb=# CREATE RESOURCE LABEL IF NOT EXISTS column_label add COLUMN(public.tb_for_label.col1); --创建一个模式schema_for_label。 gaussdb=# CREATE SCHEMA schema_for_label; --基于模式创建资源标签。 gaussdb=# CREATE RESOURCE LABEL IF NOT EXISTS schema_label add SCHEMA(schema_for_label); --创建一个视图view_for_label。 gaussdb=# CREATE VIEW view_for_label AS SELECT 1; --基于视图创建资源标签。 gaussdb=# CREATE RESOURCE LABEL IF NOT EXISTS view_label add VIEW(view_for_label); --创建一个函数func_for_label。 gaussdb=# CREATE FUNCTION func_for_label RETURNS TEXT AS $$ SELECT col1 FROM tb_for_label; $$ LANGUAGE SQL; --基于函数创建资源标签。 gaussdb=# CREATE RESOURCE LABEL IF NOT EXISTS func_label add FUNCTION(func_for_label); --删除表资源标签table_label。 gaussdb=# DROP RESOURCE LABEL IF EXISTS table_label; --删除列资源资源标签column_label。 gaussdb=# DROP RESOURCE LABEL IF EXISTS column_label; --删除函数资源标签func_for_label。 gaussdb=# DROP FUNCTION func_for_label; --删除视图资源标签view_for_label。 gaussdb=# DROP VIEW view_for_label; --删除模式资源标签schema_for_label。 gaussdb=# DROP SCHEMA schema_for_label; --删除表tb_for_label。 gaussdb=# DROP TABLE tb_for_label;
  • 语法格式 1 CREATE RESOURCE LABEL [IF NOT EXISTS] label_name ADD label_item_list[, ...]; label_item_list: 1 resource_type(resource_path[, ...]) resource_type: { TABLE | COLUMN | SCHEMA | VIEW | FUNCTION }
共100000条