华为云用户手册

  • 示例 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 gaussdb=# CREATE OR REPLACE PROCEDURE proc_case_branch(pi_result in integer, pi_return out integer) AS BEGIN CASE pi_result WHEN 1 THEN pi_return := 111; WHEN 2 THEN pi_return := 222; WHEN 3 THEN pi_return := 333; WHEN 6 THEN pi_return := 444; WHEN 7 THEN pi_return := 555; WHEN 8 THEN pi_return := 666; WHEN 9 THEN pi_return := 777; WHEN 10 THEN pi_return := 888; ELSE pi_return := 999; END CASE; raise info 'pi_return : %',pi_return ; END; / CREATE PROCEDURE gaussdb=# CALL proc_case_branch(3,0); INFO: pi_return : 333 pi_return ----------- 333 (1 row) --删除存储过程 gaussdb=# DROP PROCEDURE proc_case_branch; DROP PROCEDURE
  • PG_SHDEPEND PG_SHDEPEND系统表记录数据库对象和共享对象(比如角色)之间的依赖性关系。这些信息允许 GaussDB 保证在企图删除这些对象之前,这些对象是没有被引用的。 PG_DEPEND的作用类似,只是它是用于在一个数据库内部的对象的依赖性关系的。 PG_SHDEPEND是在数据库实例的所有数据库之间共享的,即每个实例只有一个,而不是每个数据库一个。 表1 PG_SHDEPEND字段 名称 类型 引用 描述 dbid oid PG_DATABASE.oid 依赖对象所在的数据库的OID,如果是共享对象,则为零。 classid oid PG_CLASS.oid 依赖对象所在的系统表的OID。 objid oid 任意OID属性 指定的依赖对象的OID。 objsubid integer - 对于一个表字段,这是字段号(objid和classid参考表本身)。对于所有其他对象类型,这个字段为零。 refclassid oid PG_CLASS.oid 被引用对象所在的系统表的OID(必须是一个共享表)。 refobjid oid 任意OID属性 指定的被引用对象的OID。 deptype "char" - 一段代码,定义了这个依赖性关系的特定语义;参阅下文。 objfile text - 用户定义函数库文件路径。 在任何情况下,一条PG_SHDEPEND记录就表明这个被引用的对象不能在未删除依赖对象的前提下删除。不过,deptype同时还标出了几种不同的子风格: SHARED_DEPENDENCY_OWNER (o) 被引用的对象(必须是一个角色)是依赖对象的所有者。 SHARED_DEPENDENCY_ACL (a) 被引用的对象(必须是一个角色)在依赖对象的ACL(访问控制列表,也就是权限列表)里提到。SHARED_DEPENDENCY_ACL不会在对象的所有者头上添加的,因为所有者会有一个SHARED_DEPENDENCY_OWNER记录。 SHARED_DEPENDENCY_PIN (p) 这类记录标识系统自身依赖于该被依赖对象,因此这样的对象不能被删除。这种类型的记录只是由initdb创建。这样的依赖对象的字段都是零。 SHARED_DEPENDENCY_ DBPRIV(d) 被引用的对象(必须是一个角色)具有依赖对象所对应的ANY权限(指定的依赖对象的OID对应的是系统表13.2.11 GS_DB_PRIVILEGE中一行)。 父主题: 系统表
  • GS_INSTANCE_TIME 提供当前集节点下的各种时间消耗信息,主要分为以下类型: DB_TIME: 作业在多核下的有效时间花销。 CPU_TIME:CPU的时间花销。 EXECUTION_TIME:执行器内的时间花销。 PARSE_TIME:SQL解析的时间花销。 PLAN_TIME:生成Plan的时间花销。 REWRITE_TIME:SQL重写的时间花销。 PL_EXECUTION_TIME :PL/SQL(存储过程)执行的时间花销。 PL_COMPILATION_TIME:PL/SQL(存储过程)编译的时间花销。 NET_SEND_TIME:网络上的时间花销。 DATA_IO_TIME:I/O的时间花销。 表1 GS_INSTANCE_TIME字段 名称 类型 描述 stat_id integer 统计编号。 stat_name text 类型名称。 value bigint 时间值(单位:微秒)。 父主题: 系统视图
  • SUMMARY_FILE_REDO_IOSTAT 数据库内汇总所有节点的Redo(WAL)相关的统计信息。其中phywrts、phyblkwrt、writetim字段按照各节点的数据累加求和,avgiotim为各节点的平均值(汇总的writetim/汇总的phywrts),lstiotim、maxiowtm取各节点的最大值,miniotim取各节点的最小值。 表1 SUMMARY_FILE_REDO_IOSTAT字段 名称 类型 描述 phywrts numeric 向wal buffer中写的次数。 phyblkwrt numeric 向wal buffer中写的block的块数。 writetim numeric 向xLog文件中写操作的时间(单位:微秒)。 avgiotim bigint 平均写xLog的时间(writetim/phywrts,单位:微秒)。 lstiotim bigint 最后一次写xLog的时间(单位:微秒)。 miniotim bigint 最小的写xLog时间(单位:微秒)。 maxiowtm bigint 最大的写xLog时间(单位:微秒)。 父主题: File
  • SUMMARY_STATIO_ALL_INDEXES SUMMARY_STATIO_ALL_INDEXES视图包含数据库内汇聚的数据库中的每个索引行, 显示特定索引的I/O的统计。 表1 SUMMARY_STATIO_ALL_INDEXES字段 名称 类型 描述 schemaname name 该索引的模式名。 relname name 该索引的表名。 indexrelname name 索引名称。 idx_blks_read numeric 从索引中读取的磁盘块数。 idx_blks_hit numeric 索引命中缓存数。 父主题: Cache/IO
  • ADM_PART_COL_STATIS TICS ADM_PART_COL_STATISTI CS 视图显示数据库中所有表分区的列统计信息和直方图信息。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 ADM_PART_COL_STATISTICS字段 名称 类型 描述 owner character varying(128) 分区表的所有者。 table_name character varying(128) 表名。 partition_name character varying(128) 表分区名称。 column_name character varying(4000) 列名。 num_distinct numeric 暂不支持,值为NULL。 low_value raw 暂不支持,值为NULL。 high_value raw 暂不支持,值为NULL。 density numeric 暂不支持,值为NULL。 num_nulls numeric 暂不支持,值为NULL。 num_buckets numeric 暂不支持,值为NULL。 sample_size numeric 暂不支持,值为NULL。 last_analyzed date 暂不支持,值为NULL。 global_stats character varying(3) 暂不支持,值为NULL。 user_stats character varying(3) 暂不支持,值为NULL。 notes character varying(63) 暂不支持,值为NULL。 avg_col_len numeric 暂不支持,值为NULL。 histogram character varying(15) 暂不支持,值为NULL。 schema character varying(64) 列所属的名称空间的名称。 父主题: 系统视图
  • _PG_FOREIGN_TABLE_COLUMNS 显示外部表的列信息。该视图只有sysadmin权限可以查看。 表1 _PG_FOREIGN_TABLE_COLUMNS字段 名称 类型 描述 nspname name schema名称。 relname name 表名称。 attname name 列名称。 attfdwoptions text[] 外部数据封装器的属性选项,使用“keyword=value”格式的字符串。 父主题: Information Schema
  • PG_AGGREGATE PG_AGGREGATE系统表存储与聚集函数有关的信息。PG_AGGREGATE里的每条记录都是一条pg_proc里面的记录的扩展。PG_PROC记录承载该聚集的名称、输入和输出数据类型,以及其它一些和普通函数类似的信息。 表1 PG_AGGREGATE字段 名称 类型 引用 描述 aggfnoid regproc PG_PROC.proname 此聚集函数的PG_PROC proname。 aggtransfn regproc PG_PROC.proname 转换函数。 aggcollectfn regproc PG_PROC.proname 收集函数。 aggfinalfn regproc PG_PROC.proname 最终处理函数(如果没有则为零)。 aggsortop oid PG_OPERATOR.oid 关联排序操作符(如果没有则为零)。 aggtranstype oid PG_TYPE.oid 此聚集函数的内部转换(状态)数据的数据类型。 可能取值及其含义见于pg_type.h中type定义,主要分为多态(isPolymorphicType)和非多态两类。 agginitval text - 转换状态的初始值。这是一个文本数据域,它包含初始值的外部字符串表现形式。如果数据域是null,则转换状态值从null开始。 agginitcollect text - 收集状态的初始值。这是一个文本数据域,它包含初始值的外部字符串表现形式。如果数据域是null,则收集状态值从null开始。 aggkind "char" - 此聚集函数类型: 'n' :表示Normal Agg 'o' :表示Ordered Set Agg aggnumdirectargs smallint - Ordered Set Agg类型聚集函数的直接参数(非聚集相关参数)数量。对Normal Agg类型聚集函数,该值为0。 父主题: 系统表
  • ADM_SOURCE ADM_SOURCE视图显示数据库中所有存储过程、函数、触发器、包的定义信息。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_SOURCE字段 名称 类型 描述 owner name 对象的所有者。 name name 对象名字。 type name 对象类型。取值范围:function、package、package body、procedure、trigger。 line numeric 此行在定义信息中的行号。 text text 存储对象的文本来源。 origin_con_id character varying(256) 暂不支持,值为0。 父主题: 系统视图
  • PG_STAT_USER_FUNCTIONS PG_STAT_USER_FUNCTIONS视图显示命名空间中用户自定义函数(函数语言为非内部语言)的状态信息。 表1 PG_STAT_USER_FUNCTIONS字段 名称 类型 描述 funcid oid 函数标识。 schemaname name 模式的名称。 funcname name 函数名称。 calls bigint 函数被调用的次数。 total_time double precision 函数的总执行时长。 self_time double precision 当前线程调用函数的总的时长。 父主题: 系统视图
  • 创建数据库用户 默认只有数据库安装时创建的管理员用户可以访问初始数据库,您还可以创建其他数据库用户账号。 1 gaussdb=# CREATE USER joe WITH PASSWORD "********"; 当结果显示为如下信息,则表示创建成功。 1 CREATE ROLE 如上创建了一个用户名为joe,密码为********的用户。 如下命令为设置joe用户为系统管理员。 gaussdb=# GRANT ALL PRIVILEGES TO joe; 使用GRANT命令进行相关权限设置,具体操作请参见GRANT。 关于数据库用户的更多信息请参见用户及权限。 父主题: 操作数据库
  • GS_SHARED_MEMORY_DETAIL 查询当前节点所有已产生的共享内存上下文的使用信息。 表1 GS_SHARED_MEMORY_DETAIL字段 名称 类型 描述 contextname text 内存上下文的名称。 level smallint 内存上下文的级别。 parent text 上级内存上下文。 totalsize bigint 共享内存总大小(单位:字节)。 freesize bigint 共享内存剩余大小(单位:字节)。 usedsize bigint 共享内存使用大小(单位:字节)。 父主题: Memory
  • SELECT 【规则】SELECT语句中禁用通配符字段“*”。 使用通配符字段查询表时,如果因业务或数据库升级导致表结构发生变化,可能出现与业务语句不兼容的情况。因此业务应指明所需查询的表字段名称,避免使用通配符。 【规则】避免对大字段(如VARCHAR(2000))执行ORDER BY、DISTINCT、GROUP BY、UNION等会引起排序的操作。 此类操作将消耗大量的CPU和内存资源,执行效率低下。 【规则】禁止使用LOCK TABLE语句加锁,仅允许使用 SELECT .. FOR UPDATE语句。 LOCK TABLE提供多种锁级别,但如果对数据库原理和业务理解不足,误用表锁可能触发死锁,导致数据库不可用。 【建议】考虑使用UNION ALL,少使用UNION,注意考虑去重。 UNION ALL不去重,少了排序操作,速度相对UNION更快。如果没有去重的需求,优先使用UNION ALL。 【建议】避免频繁使用count()获取大表行数,该操作资源消耗较大,影响并行作业执行效率。 如果不需要实时的行数统计信息,可以尝试使用如下语句来获取表行数。 SELECT reltules FROM pg_class WHERE relname = 'tablename'; pg_class中所记录的表行数信息只会在对该表执行ANALYZE以后才会更新。 目前ANALYZE有两种触发条件: 业务主动发送ANALYZE语句,例如: --分析连接库中所有表 ANALYZE;--分析指定表ANALYZE tablename; 借助AUTO VACUUM机制,在每间隔一定时间或表的增删达到一定行数时触发。间隔时间和增删比例可通过GUC参数设置。 父主题: 数据库编程规范
  • 参数说明 INDEX 重新建立指定的索引。 TABLE 重新建立指定表的所有索引,如果表有从属的“TOAST”表,则这个表也会重建索引。如果表上有索引已经被alter unusable失效,则这个索引无法被重新创建。当指定CONCURRENTLY选项时,暂不支持重建从属“TOAST”表上的索引。 DATABASE 重建当前数据库里的所有索引。当指定CONCURRENTLY选项时,暂不支持重建数据库中表的从属“TOAST”表上的索引。 SYSTEM 在当前数据库上重建所有系统表上的索引。不会处理在用户表上的索引。 CONCURRENTLY 以不阻塞DML的方式重建索引(加ShareUpdateExclusiveLock锁)。重建索引时,一般会阻塞其他语句对该索引所依赖表的访问。指定此关键字,可以实现重建过程中不阻塞DML。不支持在线重建系统表上的索引。不支持REINDEX INTERNAL TABLE CONCURRENTLY和REINDEX SYSTEM CONCURRENTLY。当执行REINDEX DATABASE CONCURRENTLY时,在线重建当前数据库中用户表上的所有索引(不会处理系统表上的索引)。REINDEX CONCURRENTLY不可以在事务内执行。在线重建索引只支持B-tree索引和UB-tree索引,只支持普通索引、GLOBAL索引、LOCAL索引。在线并行重建索引只支持Astore的普通索引、GLOBAL索引、LOCAL索引,Ustore索引不支持在线并行重建。如果在线重建索引失败,可能会留下非法的新索引,在系统无法自动清理失败新索引的情况下(比如数据库宕机),需要尽快手动清除(使用DROP INDEX语句)非法新索引,以防占用更多资源。一般来说,非法的新索引的后缀名为_ccnew。REINDEX INDEX CONCURRENTLY对表加4级会话锁,且其前几个阶段与CREATE INDEX CONCURRENTLY相似,因此也可能产生卡住或死锁的问题,具体场景与CREATE INDEX CONCURRENTLY相似(比如两个会话同时对同一个索引或表进行REINDEX CONCURRENTLY操作,会引发死锁问题),详见CONCURRENTLY章节。 name 需要重建索引的索引、表、数据库的名称。表和索引可以有模式修饰。 REINDEX DATABASE和SYSTEM只能重建当前数据库的索引,所以name必须和当前数据库名称相同。 FORCE 废弃选项,仅为保持前向兼容,故继续保留。 partition_name 需要重建索引的分区的名称或者索引分区的名称。 取值范围: 如果前面是REINDEX INDEX,则这里应该指定索引分区的名称; 如果前面是REINDEX TABLE,则这里应该指定分区的名称; REINDEX DATABASE和SYSTEM这种形式的重建索引不能在事务块中执行。
  • 参数 表1 PQexecPreparedBatch参数 关键字 参数说明 conn 连接句柄。 stmtName stmt名称,可以用""或者NULL来引用未命名语句,否则它必须是一个现有预备语句的名字。 nParams 参数个数。 nBatchCount 批量数。 paramValues 参数的实际值。 paramLengths 参数的实际数据长度。 paramFormats 参数的格式(文本或二进制)。 resultFormat 结果的格式(文本或二进制)。
  • 原型 PGresult* PQexecPreparedBatch(PGconn* conn, const char* stmtName, int nParams, int nBatchCount, const char* const* paramValues, const int* paramLengths, const int* paramFormats, int resultFormat);
  • global_rto_status global_rto_status视图显示关于主机和备机的日志流控信息(本节点除外、备DN上不可使用)。 表1 global_rto_status字段 参数 类型 描述 node_name text 节点的名称,包含主机和备机。 rto_info text 流控的信息,包含了备机当前的日志流控时间(单位:秒),备机通过GUC参数设置的预期流控时间(单位:秒),为了达到这个预期主机所需要的睡眠时间(单位:微秒)。 父主题: RTO & RPO
  • 背景信息 当用户对数据库中的一张或者多张表的某些字段的组合感兴趣,而又不想每次键入这些查询时,用户就可以定义一个视图,以便解决此问题。 视图与基本表不同,不是物理上实际存在的,是一个虚拟表。数据库中仅存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。若基本表中的数据发生变化,从视图中查询出的数据也随之改变。视图就像一个窗口,透过它可以看到数据库中用户感兴趣的数据及变化。视图每次被引用的时候都会运行一次。
  • upgrade_mode 参数说明:升级模式。 该参数属于INTERNAL类型参数,为固定参数,用户无法修改此参数,只能查看。 取值范围:整数,0~INT_MAX 0表示不在升级过程中。 1表示在就地升级过程中。 2表示在灰度升级过程中。 默认值:0 特殊情况:在使用灰度升级的情况下,若选择策略为大版本升级,即需要执行升级脚本和替换二进制包,会将upgrade_mode设置为2,选择策略为小版本升级,只替换二进制包,则不会设置upgrade_mode设置为2。
  • 示例 EXEC SQL SET DESCRIPTOR indesc COUNT = 1; EXEC SQL SET DESCRIPTOR indesc VALUE 1 DATA = 2; EXEC SQL SET DESCRIPTOR indesc VALUE 1 DATA = :val1; EXEC SQL SET DESCRIPTOR indesc VALUE 2 INDICATOR = :val1, DATA = 'some string'; EXEC SQL SET DESCRIPTOR indesc VALUE 2 INDICATOR = :val2null, DATA = :val2;
  • track_stmt_standby_chain_size 参数说明:组合参数,控制备机快/慢SQL记录的最大占用内存与磁盘空间。仅SysAdmin用户可以访问。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符型 该参数分为四部分,形式为'Full SQL memory size, Full SQL disk size, Slow SQL memory size, Slow SQL disk size' 。 Full SQL与Slow SQL分开存放于不同位置,因此额外使用了四个值进行控制。 Full SQL memory size 为保留的快SQL的最大内存占用空间,取值范围为 [16, 1024],单位为MB。 Full SQL disk size 为保留的快SQL的最大磁盘占用空间,取值范围为 [512, 1048576],单位为MB。 Slow SQL memory size 为保留的慢SQL的最大内存占用空间,取值范围为 [16, 1024],单位为MB。 Slow SQL disk size 为保留的慢SQL的最大磁盘占用空间,取值范围为 [512, 1048576],单位为MB。 其中内存值不可大于磁盘值。 默认值:32, 1024, 16, 512
  • query_log_directory(废弃) 参数说明:enable_slow_query_log设置为on时,query_log_directory决定存放服务器慢查询日志文件的目录,仅sysadmin用户可以访问。它可以是绝对路径,或者是相对路径(相对于数据目录的路径),在该版本中已废弃。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 当配置文件中query_log_directory的值为非法路径时,会导致数据库实例无法重新启动。 合法路径:用户对此路径有读写权限 非法路径:用户对此路径无读写权限 取值范围:字符串 默认值:安装时指定。
  • track_stmt_parameter 参数说明:开启track_stmt_parameter后,在statement_history中记录的执行语句不再进行归一化操作,可以显示完整SQL语句信息,辅助DBA进行问题定位。其中对于简单查询,显示完整语句信息;对于PBE语句,显示完整语句信息的同时,追加每个变量数值信息,格式为“query string;parameters:$1=value1,$2=value2,...”。该参数提供目的是为用户呈现完整SQL信息,不受track_activity_query_size参数控制。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on:表示开启显示完整SQL语句信息的功能 off:表示关闭显示完整SQL语句信息的功能 默认值:off
  • asp_log_directory 参数说明:asp_flush_mode设置为all或者file时,asp_log_directory决定存放服务器asp日志文件的目录。它可以是绝对路径,或者是相对路径(相对于数据目录的路径),仅sysadmin用户可以访问。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 当配置文件中asp_log_directory的值为非法路径时,会导致数据库实例无法重新启动。 合法路径:用户对此路径有读写权限。 非法路径:用户对此路径无读写权限。 取值范围:字符串 默认值:安装时指定。
  • enable_auto_clean_unique_sql 参数说明:当系统中产生的unique sql条目数量大于等于instr_unique_sql_count时,是否启用unique sql自动淘汰功能。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 默认值:off 由于快照有部分信息是来源于unique sql,所以开启自动淘汰的情况下,在生成wdr报告时,如果选择的起始快照和终止快照跨过了淘汰发生的时间,会导致无法生成wdr报告。
  • instr_unique_sql_count 参数说明:控制系统中unique sql信息实时收集功能。配置为0表示不启用unique sql信息收集功能。 该值由大变小将会清空系统中原有的数据重新统计(备机不支持此能力);从小变大不受影响。 当系统中产生的unique sql信息(由dbe_perf.statement/dbe_perf.summary_statement统计)大于instr_unique_sql_count时,系统产生的unique sql信息不被统计。 在x86架构集中式部署下,硬件配置规格为32核CPU/256GB内存,使用Benchmark SQL 5.0工具测试性能,开关此参数性能影响约3%。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0~2147483647 默认值:200000
  • enable_stmt_track 参数说明:控制是否启用Full /Slow SQL特性。 在x86架构集中式部署下,硬件配置规格为32核CPU/256GB内存,使用Benchmark SQL 5.0工具测试性能,开关此参数性能影响约1.2%。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on:表示开启Full /Slow SQL捕获 off:表示关闭Full /Slow SQL捕获 默认值:on
  • enable_instr_cpu_timer 参数说明:是否捕获sql执行的cpu时间消耗。 在x86架构集中式部署下,硬件配置规格为32核CPU/256GB内存,使用Benchmark SQL 5.0工具测试性能,开关此参数性能影响约3.5%。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on:表示捕获sql执行的cpu时间消耗。 off:表示不捕获sql执行的cpu时间消耗。 默认值:on
  • query_log_file(废弃) 参数说明:GUC参数enable_slow_query_log设置为ON,表示需要将慢查询记录写进日志文件中,query_log_file决定服务器慢查询日志文件的名称,仅sysadmin用户可以访问。通常日志文件名是按照strftime模式生成,因此可以用系统时间定义日志文件名,用%转义字符实现,在该版本中已废弃。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 建议使用%转义字符定义日志文件名称,否则难以对日志文件进行有效的管理。 取值范围:字符串 默认值:slow_query_log-%Y-%m-%d_%H%M%S.log
  • track_stmt_retention_time 参数说明:组合参数,控制全量/慢SQL记录的保留时间。以60秒为周期读取该参数,并执行清理超过保留时间的记录,仅sysadmin用户可以访问。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符型,该参数分为两部分,形式为'full sql retention time, slow sql retention time' full sql retention time为全量SQL保留时间,取值范围为0 ~ 86400,单位为秒。 slow sql retention time为慢SQL的保留时间,取值范围为0 ~ 604800,单位为秒。 默认值:3600,604800
共100000条
提示

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