华为云用户手册

  • recovery_redo_workers 参数说明:是极致RTO特性中每个ParseRedoRecord线程对应的PageRedoWorker数量。recovery_redo_workers需要配合recovery_parse_workers使用,recovery_parse_workers或者recovery_redo_workers大于1,则开启极致RTO。如不期望开启极致RTO,请保持recovery_redo_workers为默认值1。 参数类型:整型 参数单位:无 取值范围:1 ~ 8 默认值:1 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:不同CPU、内存和部署模式下,recovery_parse_workers和recovery_redo_workers的设置值可参考表1 不同CPU、内存和部署模式下的参数设置参考。 设置不当的风险与影响:设置过大,会导致CPU、内存资源不足,造成回放速度降低。 表1 不同CPU、内存和部署模式下的参数设置参考 编号 CPU个数 内存(GB) 是否混合部署 recovery_parse_workers recovery_redo_workers 回放线程总数 备注 1 4 - - 1 1 - 不推荐开极致RTO 2 8 - 是 1 1 - 不推荐开极致RTO 3 8 64 否 1 3 10 - 4 16 128 是 1 2 9 - 5 16 128 否 2 3 15 - 6 32 256 是 2 2 13 - 7 32 256 否 2 8 25 - 8 64 512 是 2 4 17 - 9 64 512 否 2 8 25 大于此硬件规格的系统均参考此参数设置值 10 96 768 - 2 8 25 大于此硬件规格的系统均参考此参数设置值
  • recovery_parallelism 参数说明:查询并行回放线程的实际数量。 参数类型:整型 参数单位:无 取值范围:1 ~ 165 默认值:4 设置方式:该参数属于POSTMASTER类型参数,但是不能直接修改。recovery_max_workers、recovery_parse_workers、recovery_redo_workers这3个参数的任意一个被修改时,recover_parallelism都将被重新计算。 设置建议:该参数为只读参数,无法修改。 设置不当的风险与影响:无
  • recovery_parse_workers 参数说明:是极致RTO特性中ParseRedoRecord线程的数量。 需要配合recovery_redo_workers使用。recovery_parse_workers或者recovery_redo_workers大于1,则开启极致RTO。如不期望开启极致RTO,请保持recovery_parse_workers为默认值1; 在开启极致RTO时确保参数replication_type为1; 若同时开启极致RTO和并行回放,则极致RTO特性生效,并行回放特性失效; 极致RTO不支持流控,流控统一由recovery_time_target参数控制。 参数类型:整型 参数单位:无 取值范围:1 ~ 16 默认值:1 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:不同CPU、内存和部署模式下,recovery_parse_workers和recovery_redo_workers的设置值可参考表1 不同CPU、内存和部署模式下的参数设置参考。 设置不当的风险与影响:设置过大,会导致CPU、内存资源不足,造成回放速度降低。 打开极致RTO后,备机会额外启动的回放线程总数=recovery_parse_workers * (recovery_redo_workers + 2) + 5。回放线程越多,占用CPU、内存和I/O资源越多。请根据实际硬件配置合理设置参数,避免因为参数设置过大,导致CPU和内存占用过高,进而导致系统启动异常。
  • recovery_time_target 参数说明:备机完成日志写入和回放的流控阈值。当备机的回放完成预期时间大于此参数,主机会触发日志流控,将降低主机向备机发送日志的速率。 参数类型:整型 参数单位:s(秒) 取值范围:0 ~ 3600 0:表示不开启日志流控。 1 ~ 3600:表示备机能够在recovery_time_target时间内完成日志的写入和回放,可以保证主机与备机切换时能够在recovery_time_target完成日志写入和回放,保证备机能够快速升主机。 默认值:60 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:一般设置为默认值,不作调整。 设置不当的风险与影响:设置过小会影响主机的性能,例如设置为10,说明备机回放相对备机接收日志有延迟,允许延迟最大为10s,如果超过了10s,则会限制主机往备机段发送日志,对主机的性能会有限制,在主备场景下,主机的事务需要有备机日志落盘才能提交,限制了日志的发送会限制主机的事务执行影响到性能。设置过大会失去流控效果。关闭流控后,可能会出现RTO/RPO升高的情况。
  • recovery_max_workers 参数说明:设置并行回放线程的最大数量。recovery_parse_workers和recovery_redo_workers同时为1,即不开启极致RTO,此参数才能生效。 参数类型:整型 参数单位:无 取值范围:0 ~ 20 默认值:4(安装工具默认设置为4,以获得更好的性能) 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过大,会导致CPU、内存资源不足,造成回放速度降低。
  • GLOBAL_WAIT_EVENTS GLOBAL_WAIT_EVENTS视图显示各节点的event的等待相关的统计信息,如表1所示。 表1 GLOBAL_WAIT_EVENTS字段 名称 类型 描述 nodename text 数据库进程名称。 type text event类型。 event text event名称。 wait bigint 等待次数。 failed_wait bigint 失败的等待次数。 total_wait_time bigint 总等待时间(单位:微秒)。 avg_wait_time bigint 平均等待时间(单位:微秒)。 max_wait_time bigint 最大等待时间(单位:微秒)。 min_wait_time bigint 最小等待时间(单位:微秒)。 last_updated timestamp with time zone 最后一次更新该事件的时间。 父主题: Wait Events
  • TRANSACTIONS_PREPARED_XA CTS 显示当前节点准备好进行两阶段提交的事务的信息,如表1所示。多租场景下,non-PDB访问该视图时返回全局统计信息,PDB访问该视图时仅返回该PDB的统计信息。 表1 TRANSACTIONS_PREPARED_XACTS字段 名称 类型 描述 transaction xid 预备事务的数字事务标识。 gid text 赋予该事务的全局事务标识。 prepared timestamp with time zone 事务准备好提交的时间。 owner name 执行该事务的用户的名称。 database name 执行该事务所在的数据库名。 父主题: Transaction
  • 参数说明 label_name 安全标签名称,需在数据库内唯一。 取值范围:字符串,要符合标识符命名规范,且最大长度不超过63个字符。若超过63个字符,数据库会截断并保留前63个字符当作安全标签名称。当安全标签名称中包含大写字母时数据库会自动转换为小写字母,如果需要创建包含大写字母的安全标签名称则需要使用双引号括起来。 标识符需要为小写字母(a-z)、大写字母(A-Z)、下划线(_)、数字(0~9)或美元符号($),且必须以字母或下划线开头。 label_content 安全标签内容,要求如下: 安全标签由等级和范围两部分组成,两者中间用冒号分隔,形式如:等级类别:范围类别,其中等级类别有且仅由一个等级组成,范围类别可由多个范围组成,但至少需要有一个范围,例如“L1:G2,G41,G6-G27”。 等级分类中有1024个等级,命名为Li,其中1≤i≤1024,等级满足偏序关系(若i ≤ j,则Li ≤ Lj),例如等级L1小于等级L3。 范围分类中有1024个范围,命名为Gi,其中1≤i≤1024,范围之间无法比较大小,但可以进行集合运算,多个范围之间用逗号分隔,连字符表示区间,例如{G2-G5}表示{G2,G3,G4,G5},集合{G1}是集合{G1,G6}的子集。 等级和范围的首字母L和G均为大写;L和G之后至少要有一个数字字符,且第一位非零,不允许出现其他非数字字符;{Gxxx-Gyyy}形式中数字yyy必须大于等于xxx。 不符合要求的等级和范围均为非法输入,系统会报错。 例子: gaussdb=# CREATE SECURITY LABEL sec_label3 'L3:'; //标签内容范围类别至少要有一个才行。 ERROR: in label text "L3:", there at least have one level and one group
  • 示例 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 --创建安全标签sec_label。 gaussdb=# CREATE SECURITY LABEL sec_label 'L1:G4'; --创建安全标签sec_label,安全标签内容为'L1:G2,G4'。 gaussdb=# CREATE SECURITY LABEL sec_label 'L1:G2,G4'; ERROR: security label "sec_label" already exists --创建安全标签sec_label1,安全标签内容为'L1:G2,G4'。 gaussdb=# CREATE SECURITY LABEL sec_label1 'L1:G2,G4'; --创建安全标签sec_label2,安全标签内容为'L3:G1-G5'。 gaussdb=# CREATE SECURITY LABEL sec_label2 'L3:G1-G5'; --查看系统中已创建好的安全标签。 gaussdb=# SELECT * FROM gs_security_label; label_name | label_content ------------+--------------- sec_label | L1:G4 sec_label1 | L1:G2,G4 sec_label2 | L3:G1-G5 (3 rows) --删除已存在的安全标签sec_label、sec_label1、sec_label2。 gaussdb=# DROP SECURITY LABEL sec_label; gaussdb=# DROP SECURITY LABEL sec_label1; gaussdb=# DROP SECURITY LABEL sec_label2; --再次查看系统中已创建好的安全标签。 gaussdb=# SELECT * FROM gs_security_label; label_name | label_content ------------+--------------- (0 rows)
  • INSTANCE_TIME 提供当前数据库节点下的各种时间消耗信息,如表1所示。 表1 INSTANCE_TIME字段 名称 类型 描述 stat_id integer 统计编号。 stat_name text 类型名称。 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上的时间花销。 value bigint 时间值(单位:微秒)。 父主题: Instance
  • PG_PARTITION PG_PARTITION系统表存储数据库内所有分区表(partitioned table)、分区(table partition)和分区索引(index partition)三类对象的信息。分区表索引(partitioned index)的信息不在PG_PARTITION系统表中保存。由于分区表(partitioned table)没有实际的物理文件,所以在pg_partition中不会记录其relfilenode、relpages、reltuples、reltoastrelid、reltoastidxid等信息。 表1 PG_PARTITION字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 relname name 分区表、分区、分区上toast表和分区索引的名称。 parttype "char" 对象类型: 'r':partitioned table 'p':table partition 's':table subpartition 'x':index partition parentid oid 当对象为分区表或分区时,此字段表示分区表在PG_CLASS中的OID。 当对象为二级分区时,此字段表示其一级分区在PG_PARTITION中的OID。 当对象为index partition时,此字段表示所属分区表索引(partitioned index)的OID。 rangenum integer 保留字段。 intervalnum integer 保留字段。 partstrategy "char" 分区表分区策略,现在仅支持: 'r':范围分区。 'i':间隔分区。 'l':list分区。 'a':自动扩展的list分区。 'h':hash分区。 'n':无分区策略,该对象不是表分区。 relfilenode oid table partition、index partition、分区上toast表的物理存储位置。 reltablespace oid table partition、index partition、分区上toast表所属表空间的OID。 relpages double precision 统计信息:table partition、index partition的数据页数量。 reltuples double precision 统计信息:table partition、index partition的元组数。 relallvisible integer 统计信息:table partition、index partition的可见数据页数。 reltoastrelid oid table partition所对应toast表的OID。 reltoastidxid oid table partition所对应toast表的索引的OID。 indextblid oid index partition对应table partition的OID。 indisusable boolean 分区索引是否可用。 relfrozenxid xid32 冻结事务ID号。 为保持前向兼容,保留此字段,新增relfrozenxid64用于记录此信息。 intspnum integer 间隔分区所属表空间的个数。 partkey int2vector 分区键的列号。 intervaltablespace oidvector 间隔分区所属的表空间,间隔分区以round-robin方式落在这些表空间内。 interval text[] 间隔分区的间隔值。 boundaries text[] 范围分区和间隔分区的上边界。 transit text[] 间隔分区的跳转点。 reloptions text[] 设置partition的存储属性,与pg_class.reloptions的形态一样,用“keyword=value”格式的字符串来表示 ,目前用于在线扩容的信息搜集。 relfrozenxid64 xid 冻结事务ID号。 relminmxid xid 冻结多事务ID号。 partitionno integer 用于维护分区表中的分区Map结构。 当对象为分区时,此字段表示分区ID,从1开始自增。 当对象为分区表时,此字段表示分区ID的最大值,并使用负值来特殊标记,该值会随着部分分区DDL语法不断递增。 当对象为其他类型时,此字段为空值,没有任何含义。 partitionno是一个永久自增列,可以通过语法ALTER TABLE t_name RESET PARTITION命令重置/回收。 subpartitionno integer 用于维护分区表中的二级分区Map结构。 当对象为二级分区时,此字段表示二级分区ID,从1开始自增。 当对象为二级分区表的一级分区时,此字段表示二级分区ID的最大值,并使用负值来特殊标记,该值会随着部分分区DDL语法不断递增。 当对象为其他类型时,此字段为空值,没有任何含义。 subpartitionno是一个永久自增列,可以通过语法ALTER TABLE t_name RESET PARTITION命令重置/回收。 父主题: 分区表
  • GS_COMM_PROXY_THREAD_STATUS GS_COMM_PROXY_THREAD_STATUS视图用来显示代理通信库comm_proxy的数据收发包统计信息。只有集中式数据库在安装阶段启动用户态网络部署形态,同时comm_proxy_attr参数的enable_dfx配置为true,才会具体显示数据comm_proxy的数据收发统计,其他场景下,该视图不支持查询。 表1 GS_COMM_PROXY_THREAD_STATUS字段 名称 类型 描述 ProxyThreadId bigint 当前网络代理线程comm_proxy的线程id。 ProxyCpuAffinity text 当前网络代理线程comm_proxy的NUMA-CPU亲和性,表示所在NUMA和CPU ID。 ThreadStartTime text 当前网络代理线程comm_proxy的启动时间。 RxPckNums bigint 当前网络代理线程comm_proxy收包数量。 TxPckNums bigint 当前网络代理线程comm_proxy发包数量。 RxPcks double precision 当前网络代理线程comm_proxy每秒收包数量。 TxPcks double precision 当前网络代理线程comm_proxy每秒发包数量。 父主题: 其他系统视图
  • PL/SQL语言函数 PL/SQL是一种可载入的过程语言。 用PL/SQL创建的函数可以被用在任何可以使用内建函数的地方。例如,可以创建复杂条件的计算函数并且后面用它们来定义操作符或把它们用于索引表达式。 SQL被大多数数据库用作查询语言,它是可移植的并且容易学习。但是每一个SQL语句必须由数据库服务器单独执行。 这意味着客户端应用对于每一个查询都要执行以下过程:发送查询到数据库服务器、等待查询被接收、接收并处理结果、进行相关计算、然后发送更多查询给服务器。如果客户端和数据库服务器不在同一台机器上,那么这个过程还会引起进程间通信问题并且将带来网络负担。 通过PL/SQL,可以将一整块计算和一系列查询分组在数据库服务器内部,这样就有了一种过程语言的能力并且使SQL更易用,同时能节省客户端/服务器通信开销。PL/SQL的优点如下: 客户端和服务器之间的额外往返通信被消除。 客户端不需要的中间结果不必被整理或者在服务器和客户端之间传送。 多轮的查询解析可以被避免。 PL/SQL可以使用SQL中所有的数据类型、操作符和函数,应用PL/SQL创建函数的语法为CREATE FUNCTION。 PL/SQL是一种可载入的过程语言,其应用方法与存储过程相似,但存储过程无返回值,PL/SQL语言函数有返回值。 XML类型数据支持作为自定义函数的入参、出参、自定义变量和返回值。 父主题: 用户自定义函数
  • GS_TXN_SNAPSHOT GS_TXN_SNAPSHOT是“时间戳- CS N”映射表,周期性采样,并维护适当的时间范围,用于估算范围内的时间戳对应的CSN值。 表1 GS_TXN_SNAPSHOT字段 名称 类型 描述 snptime timestamp with time zone 快照捕获时间。 snpxmin bigint 快照xmin。 snpcsn bigint 快照csn。 snpsnapshot text 快照序列化文本。 父主题: 其他系统表
  • ADM_COLL_TYPES ADM_COLL_TYPES视图显示所有集合类型的信息。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 ADM_COLL_TYPES字段 名称 类型 描述 owner character varying(128) 集合的所有者。 type_name character varying(128) 集合的名称。 coll_type character varying(128) 集合的描述。 upper_bound numeric 暂不支持,值为NULL。 elem_type_mod character varying(7) 暂不支持,值为NULL。 elem_type_owner character varying(128) 集合基于的元素类型的所有者。该值主要用于用户定义的类型。 elem_type_name character varying(128) 集合所依据的数据类型或用户定义类型的名称。 length numeric 暂不支持,值为NULL。 precision numeric 暂不支持,值为NULL。 scale numeric 暂不支持,值为NULL。 character_set_name character varying(44) 暂不支持,值为NULL。 elem_storage character varying(7) 暂不支持,值为NULL。 nulls_stored character varying(3) 暂不支持,值为NULL。 char_used character varying(1) 暂不支持,值为NULL。 父主题: 其他系统视图
  • PG_STAT_SYS_INDEXES PG_STAT_SYS_INDEXES视图显示pg_catalog、information_schema模式中所有系统表的索引状态信息。 表1 PG_STAT_SYS_INDEXES字段 名称 类型 描述 relid oid 该索引所在的表的OID。 indexrelid oid 索引的OID。 schemaname name 索引的模式名。 relname name 索引的表名。 indexrelname name 索引名。 idx_scan bigint 索引上开始的索引扫描数。 idx_tup_read bigint 该索引上扫描返回的索引项数。 idx_tup_fetch bigint 使用该索引的简单索引扫描在原表中抓取的活跃行数。 父主题: 其他系统视图
  • STATEMENT 获得当前节点的执行语句(归一化SQL)的信息,如表1所示。数据库主节点上可以看到此数据库主节点接收到的归一化的SQL的全量统计信息(包含数据库节点);数据库节点上仅可看到归一化的SQL的此节点执行的统计信息。多租场景下,non-PDB访问该视图时返回全部信息,PDB访问该视图时仅返回该PDB相关信息。 不同的savepoint_name所生成的unique_sql_id不同,大量使用savepoint_name时会导致系统中产生的unique_sql_id信息快速上涨,若unique_sql_id数量高于instr_unique_sql_count数量时,新产生的unique_sql_id信息将不被统计。 表1 STATEMENT字段 名称 类型 描述 node_name name 节点名称。 node_id integer 节点的id,集中式该值为0。 user_name name 用户名称,若查询时执行query语句的用户已不存在,则显示为*REMOVED_USER*。 user_id oid 用户OID。 unique_sql_id bigint 归一化的SQL id。 query text 归一化的SQL。 备注:长度受track_activity_query_size控制。 n_calls bigint 调用次数。 min_elapse_time bigint SQL在内核内的最小运行时间(单位:微秒)。 max_elapse_time bigint SQL在内核内的最大运行时间(单位:微秒)。 total_elapse_time bigint SQL在内核内的总运行时间(单位:微秒)。 n_returned_rows bigint SELECT返回的结果集行数。 n_tuples_fetched bigint 随机扫描行。 n_tuples_returned bigint 顺序扫描行。 n_tuples_inserted bigint 插入行。 n_tuples_updated bigint 更新行。 n_tuples_deleted bigint 删除行。 n_blocks_fetched bigint 逻辑读次数。 n_blocks_hit bigint 内存中命中次数。 n_soft_parse bigint 软解析次数,n_soft_parse + n_hard_parse可能大于n_calls,因为子查询未计入n_calls。 n_hard_parse bigint 硬解析次数,n_soft_parse + n_hard_parse可能大于n_calls,因为子查询未计入n_calls。 db_time bigint 有效的数据库内部时间花费,多线程将累加(单位:微秒)。 cpu_time bigint CPU时间(单位:微秒)。 execution_time bigint 执行器内执行时间(单位:微秒)。 parse_time bigint SQL解析时间(单位:微秒)。 plan_time bigint SQL生成计划时间(单位:微秒)。 rewrite_time bigint SQL重写时间(单位:微秒)。 pl_execution_time bigint plpgsql上的执行时间(单位:微秒)。 pl_compilation_time bigint plpgsql上的编译时间(单位:微秒)。 data_io_time bigint IO上的时间花费(单位:微秒)。 net_send_info text 通过物理连接发送消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。单机模式下不支持该字段。 net_recv_info text 通过物理连接接收消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。单机模式下不支持该字段。 net_stream_send_info text 通过逻辑连接发送消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。单机模式下不支持该字段。 net_stream_recv_info text 通过逻辑连接接收消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。单机模式下不支持该字段。 last_updated timestamp with time zone 最后一次更新该语句的时间。 sort_count bigint 排序执行的次数。 sort_time bigint 排序执行的时间(单位:微秒)。 sort_mem_used bigint 排序过程中使用的work memory大小(单位:KB)。 sort_spill_count bigint 排序过程中,若发生落盘,写文件的次数。 sort_spill_size bigint 排序过程中,若发生落盘,使用的文件大小(单位:KB)。 hash_count bigint hash执行的次数。 hash_time bigint hash执行的时间(单位:微秒)。 hash_mem_used bigint hash过程中使用的work memory大小(单位:KB)。 hash_spill_count bigint hash过程中,若发生落盘,写文件的次数。 hash_spill_size bigint hash过程中,若发生落盘,使用的文件大小(单位:KB)。 parent_unique_sql_id bigint 父语句的unique_sql_id,非存储过程子语句该值为0。 lock_wait_time bigint SQL的等锁时间(单位:微秒)。 total_used_memory bigint 归一化语句的内存使用总量(单位:MB)。 max_used_memory integer 单条语句的最大内存使用量(单位:MB)。 min_used_memory integer 单条语句的最小内存使用量(单位:MB)。 db_name name 连接后端的数据库名称,若查询时执行query语句的库已不存在,则显示为*REMOVED_DB*。 db_id oid 连接后端的数据库OID。 n_calls表示实际调用次数,对于存储过程内的fetch语句,fetch语句的实际触发次数,对应该cursor实际执行的语句的n_calls的增加次数。 父主题: Query
  • PG_PREPARED_XACTS PG_PREPARED_XACTS视图显示当前准备好进行两阶段提交的事务的信息。多租场景下,non-PDB访问该视图时返回全部信息,PDB访问该视图时仅返回该PDB相关信息。 表1 PG_PREPARED_XACTS字段 名称 类型 引用 描述 transaction xid - 预备事务的数字标识。 gid text - 预备事务的全局标识。 prepared timestamp with time zone - 事务准备好提交的时间。 owner name PG_AUTHID.rolname 执行该事务的用户的名称。 database name PG_DATABASE.datname 执行该事务的数据库的名称。 父主题: 其他系统视图
  • 伪类型 GaussDB 数据类型中包含一系列特殊用途的类型,这些类型按照类别被称为伪类型,如表1所示。伪类型不能作为字段的数据类型,但是可以用于声明函数的参数或者结果类型。 当一个函数不仅简单地接受并返回某种SQL数据类型时,伪类型非常有用。表1列出了所有的伪类型。 表1 伪类型 名称 描述 any 表示函数接受任何输入数据类型。 anyelement 表示函数接受任何数据类型。 anyarray 表示函数接受任意数组数据类型。 anynonarray 表示函数接受任意非数组数据类型。 anyenum 表示函数接受任意枚举数据类型。 anyrange 表示函数接受任意范围数据类型。 cstring 表示函数接受或者返回一个空结尾的C字符串。 internal 表示函数接受或者返回一种服务器内部的数据类型。 language_handler 声明一个过程语言调用句柄返回language_handler。 fdw_handler 声明一个外部数据封装器返回fdw_handler。 record 标识函数返回一个未声明的行类型。 trigger 声明一个触发器函数返回trigger。 void 表示函数不返回数值。 opaque 一个已经过时的类型,以前用于所有上面这些用途。 声明用C编写的函数(不管是内置的还是动态装载的)都可以接受或者返回任何这样的伪数据类型。当伪类型作为参数类型使用时,用户需要保证函数的正常运行。 用过程语言编写的函数只能使用实现语言允许的伪类型。目前,过程语言都不允许使用作为参数类型的伪类型,并且只允许使用void和record作为结果类型。一些多态的函数还支持使用anyelement、anyarray、anynonarray、anyenum和anyrange类型。 每一个被声明为anyelement的位置(参数或返回值)都允许具有任意特定的实际数据类型,但是在任何给定的查询中必须全部是相同的实际类型。 伪类型internal用于声明只能在数据库系统内部调用的函数,这些函数不能直接在SQL查询里调用。如果函数至少有一个internal类型的参数,则不能从SQL里调用。建议不要创建任何声明返回internal的函数,除非其至少有一个internal类型的参数。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 --创建表。 gaussdb=# CREATE TABLE t1 (a int); --插入两条数据。 gaussdb=# INSERT INTO t1 values(1),(2); --创建函数showall()。 gaussdb=# CREATE OR REPLACE FUNCTION showall() RETURNS SETOF record AS $$ SELECT count(*) from t1; $$ LANGUAGE SQL; --调用函数showall()。 gaussdb=# SELECT showall(); showall --------- (2) (1 row) --删除函数。 gaussdb=# DROP FUNCTION showall(); --删除表。 gaussdb=# DROP TABLE t1; 父主题: 数据类型
  • GS_TOTAL_NODEGROUP_MEMORY_DETAIL GS_TOTAL_NODEGROUP_MEMORY_DETAIL返回当前数据库逻辑实例使用内存的信息,单位为MB,若GUC参数enable_memory_limit设置为off,则该视图不能使用。 表1 GS_TOTAL_NODEGROUP_MEMORY_DETAIL字段 名称 类型 描述 ngname text 逻辑实例名称。 memorytype text 内存类型,包括以下几种: ng_total_memory:该逻辑实例的总内存大小。 ng_used_memory:该逻辑实例的实际使用内存大小。 ng_estimate_memory:该逻辑实例的估算使用内存大小。 ng_foreignrp_memsize:该逻辑实例的外部资源池的总内存大小。 ng_foreignrp_usedsize:该逻辑实例的外部资源池实际使用内存大小。 ng_foreignrp_peaksize:该逻辑实例的外部资源池使用内存的峰值。 ng_foreignrp_mempct:该逻辑实例的外部资源池占该逻辑实例总内存大小的百分比。 ng_foreignrp_estmsize:该逻辑实例的外部资源池估算使用内存大小。 memorymbytes integer 内存类型分配内存的大小。 父主题: 其他系统视图
  • htap_flush_pagenum 参数说明:依赖HTAP特性开启状态,设置同步增量行存数据到IMCV行组的脏页阈值,脏页数量大于该值触发同步过程。 参数类型:整型 参数单位:无 取值范围:1 ~ 1000 默认值:512 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:一般不建议修改,降低该参数可以提高AP性能,但是可能会影响TP性能;增加该参数会影响AP性能。 设置不当的风险与影响:设置过小可能影响TP性能,设置过大可能影响AP性能,建议使用默认值。
  • htap_flush_interval 参数说明:依赖HTAP特性开启状态,设置同步增量行存数据到IMCV行组的最大时间间隔。 参数类型:整型 参数单位:s(秒) 取值范围:1 ~ 36000 默认值:300 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:一般不建议修改,降低该参数可以提高AP性能,但是可能会影响TP性能;增加该参数会影响AP性能。 设置不当的风险与影响:设置过小可能影响TP性能,设置过大可能影响AP性能,建议使用默认值。
  • htap_flush_workers 参数说明:依赖HTAP特性开启状态,设置同步增量行存数据到IMCV行组的最大工作线程数。 参数类型:整型 参数单位:无 取值范围:1 ~ 100 默认值:3 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:一般不建议修改,提高该参数可以提高AP性能,但是可能会影响TP性能;降低该参数会影响AP性能。 设置不当的风险与影响:设置过大可能影响TP性能,设置过小可能影响AP性能,建议使用默认值。
  • htap_max_mem_size 参数说明:依赖HTAP特性开启状态,设置HTAP特性可用的内存上限。当GaussDB动态内存使用达到上限后,即使HTAP内存使用未达到上限,也无法继续分配内存。 参数类型:整型 参数单位:kB 取值范围:102400 ~ 1073741824 默认值:1048576(即1GB) 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。例如,设置为1000000,不带单位,表示1000000kB;设置为1GB,带单位,表示1GB。取值如果要带单位,必须为kB、MB、GB。 设置建议:该参数不应该超过max_process_memory和最大共享内存,并根据实际使用场景合理分配空闲内存作为该参数的值。 设置不当的风险与影响:htap_max_mem_size的设置基于GaussDB的动态内存和内存管理机制。当max_process_memory设置不当、htap_max_mem设置过大、关闭逻辑内存管理时,可能会导致系统内存不足。当htap_max_mem_size设置过小,可能会导致创建的IMCV频繁触发内存不足异常。 最大动态内存和已使用的动态内存可以通过gs_total_memory_detail视图查询获得,max_dynamic_memory表示最大动态内存,dynamic_used_memory表示已使用的动态内存。
  • htap_memctl_policy 参数说明:依赖HTAP特性开启状态,设置HTAP特性内存管理的策略模式。 参数类型:枚举类型 参数单位:无 取值范围: delete:表示当HTAP内存不足时,删除内存列内存数据,释放内存。HTAP内存上限由参数htap_max_mem_size设置。 swap:表示当HTAP内存不足时,会发生数据交换,不常用数据落盘到本地磁盘中。当前版本,该功能暂不生效。 默认值:delete 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • enable_imcvscan 参数说明:依赖HTAP特性开启状态,设置是否打开HTAP内存列扫描算子IMCVScan。 参数类型:布尔型 参数单位:无 取值范围: on:打开HTAP内存列扫描算子IMCVScan。 off:关闭HTAP内存列扫描算子IMCVScan。 默认值:on 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • enable_parallel_populate 参数说明:依赖HTAP特性开启状态,设置是否开启存量行存转内存列IMCV的并行加载特性,以加速IMCV表创建流程。 参数类型:布尔型 参数单位:无 取值范围: on:并行加载数据。 off:串行加载数据。 默认值:off 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:开启该参数后,加载行存数据到IMCV表可能会影响行存表的性能,请根据使用场景进行设置。开启该参数后,一次同时进行并发加载的表/分区数量(这里计算非分区表的表数量与分区表的分区数量的和)不应过多,其最大值计算公式为min(max_connections/40, 100),对于多表场景,建议分批次进行表的并发加载操作。
  • enable_htap 参数说明:是否开启HTAP特性,开启HTAP特性后,会加载COLVIEW关键字指定列的存量行存数据到内存IMCV(In-memory Column View,列式内存引擎)中,用于提高AP(Analytical Processing,分析处理)查询效率。使用多租数据库特性时需要关闭该参数。 参数类型:布尔型 参数单位:无 取值范围: on:打开HTAP特性。 off:关闭HTAP特性。 默认值:off 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:该参数默认关闭,如果需要开启,请结合数据库使用场景,存在大量AP查询时,开启该参数可以优化查询效率。纯TP查询场景不建议开启该参数。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • htap_router_mode 参数说明:依赖HTAP特性开启状态,设置HTAP透明路由的模式。 参数类型:枚举类型 参数单位:无 取值范围: row:强制使查询负载选择行存计划。 column:当查询请求中的列加载到IMCV时,无视代价高低,强制执行列存(IMCVScan)计划;若存在未加载到IMCV的列时,执行行存计划。 auto:根据查询请求中的列是否加载到IMCV,以及行列计划代价高低,自动选择行、列、行列混合计划。 默认值:row 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:当使用场景有混合负载时,推荐该参数设置为auto。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • PG_STAT_ALL_TABLES PG_STAT_ALL_TABLES视图可用来查询当前数据库中每个表的信息(包括TOAST表),显示特定表的统计信息。 表1 PG_STAT_ALL_TABLES字段 名称 类型 描述 relid oid 表的OID。 schemaname name 该表的模式名。 relname name 表名。 seq_scan bigint 该表发起的顺序扫描数。 seq_tup_read bigint 顺序扫描抓取的活跃行数。 idx_scan bigint 该表发起的索引扫描数。 idx_tup_fetch bigint 索引扫描抓取的活跃行数。 n_tup_ins bigint 插入行数。 n_tup_upd bigint 更新行数。 n_tup_del bigint 删除行数。 n_tup_hot_upd bigint HOT更新行数(比如没有更新所需的单独索引)。 n_live_tup bigint 估计活跃行数。 n_dead_tup bigint 估计不活跃行数。在Ustore表中仅代表不活跃行指针数量。 last_vacuum timestamp with time zone 最后一次清理该表的时间。 last_autovacuum timestamp with time zone 这个表上次被autovacuum守护线程清理的时间。 last_analyze timestamp with time zone 上次分析该表的时间。 last_autoanalyze timestamp with time zone 这个表上次被autovacuum守护线程分析的时间。 vacuum_count bigint 这个表被清理的次数。 autovacuum_count bigint 这个表被autovacuum清理的次数。 analyze_count bigint 这个表被分析的次数。 autoanalyze_count bigint 这个表被autovacuum守护线程分析的次数。 last_data_changed timestamp with time zone 记录这个表上一次数据发生变化的时间(引起数据变化的操作包括对表的修改insert/update/delete/truncate和对表的分区(partition/subpartition)的修改exchange/truncate/drop),该列数据仅在本地数据库主节点记录。 父主题: 其他系统视图
共100000条
提示

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