华为云用户手册

  • SUMMARY_STAT_ALL_TABLES 显示集群内数据库中每个表(包括TOAST表)的状态信息的汇总求和结果(在CN节点使用。对每个节点中表的状态信息汇总求和,其中timestamp类型字段不进行求和,仅取所有节点中该字段的最新值)。 表1 SUMMARY_STAT_ALL_TABLES字段 名称 类型 描述 schemaname name 该表所在的Schema名。 relname name 表名。 seq_scan numeric 该表发起的顺序扫描数。 seq_tup_read numeric 顺序扫描抓取的活跃行数。 idx_scan numeric 该表发起的索引扫描数。 idx_tup_fetch numeric 索引扫描抓取的活跃行数。 n_tup_ins numeric 插入行数。 n_tup_upd numeric 更新行数。 n_tup_del numeric 删除行数。 n_tup_hot_upd numeric HOT更新行数(即没有更新索引列的行数)。 n_live_tup numeric 估计活跃行数。 n_dead_tup numeric 估计不活跃行数。 last_vacuum timestamp with time zone 最后一次该表是手动清理的(不计算VACUUM FULL)的时间。 last_autovacuum timestamp with time zone 上次被autovacuum守护线程清理的时间。 last_analyze timestamp with time zone 上次手动分析该表的时间。 last_autoanalyze timestamp with time zone 上次被autovacuum守护线程分析时间。 vacuum_count numeric 该表被手动清理的次数(不计算VACUUM FULL)。 autovacuum_count numeric 该表被autovacuum清理的次数。 analyze_count numeric 该表被手动分析的次数。 autoanalyze_count numeric 该表被autovacuum守护线程分析的次数。 父主题: Object
  • STAT_XACT_USER_TABLES 显示当前节点Schema中用户表的事务状态信息。 表1 STAT_XACT_USER_TABLES字段 名称 类型 描述 relid oid 表的OID。 schemaname name 该表所在的Schema名。 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更新行数(即没有更新新索引列的行数)。 父主题: Object
  • 函数和操作符 操作符可以对一个或多个操作数进行处理,位置上可能处于操作数之前、之后,或两个操作数中间。完成处理之后,返回处理结果。 函数是对一些业务逻辑的封装,以完成特定的功能。函数可以有参数,也可以没有参数。函数是有返回类型的,执行完成后,会返回执行结果。 对于系统函数,用户可以进行修改,但是修改之后系统函数的语义可能会发生改变,从而导致系统控制紊乱。正常情况下不允许用户手工修改系统函数。 当GUC参数behavior_compat_options含有'enable_funcname_with_argsname'选项时,投影别名显示完整函数。 逻辑操作符 比较操作符 字符处理函数和操作符 二进制字符串函数和操作符 位串函数和操作符 模式匹配操作符 数字操作函数和操作符 时间和日期处理函数和操作符 类型转换函数 几何函数和操作符 网络地址函数和操作符 文本检索函数和操作符 JSON/JSONB函数和操作符 HLL函数和操作符 SEQUENCE函数 数组函数和操作符 范围函数和操作符 聚集函数 窗口函数 安全函数 密态函数和操作符 返回集合的函数 条件表达式函数 系统信息函数 系统管理函数 统计信息函数 触发器函数 HashFunc函数 提示信息函数 故障注入系统函数 重分布函数 分布列推荐函数 其他系统函数 内部函数 AI特性函数 动态数据脱敏函数 hotkey特性函数 Global SysCache特性函数 数据损坏检测修复函数 XML类型函数 XMLTYPE类型函数 废弃函数 父主题: SQL参考
  • 动态数据脱敏函数 该函数为内部功能调用函数。 creditcardmasking(col text, letter char default 'x') 描述:将col字符串后四位之前的数字使用letter替换。 参数:待替换的字符串、替换字符。 返回值类型:text basicmailmasking(col text, letter char default 'x') 描述:将col字符串中第一个'@'之前的字符使用letter替换。 参数:待替换的字符串、替换字符。 返回值类型:text fullmailmasking(col text, letter char default 'x') 描述:将col字符串中出现最后一个'.'之前的字符(除'@'外)使用letter替换。 参数:待替换的字符串、替换字符。 返回值类型:text alldigitsmasking(col text, letter char default '0') 描述:将col字符串中出现的数字使用letter替换。 参数:待替换的字符串、替换字符。 返回值类型:text shufflemasking(col text) 描述:将col字符串中的字符乱序排列。 参数:待替换的字符串、替换字符。 返回值类型:text randommasking(col text) 描述:将col字符串中的字符随机化。 参数:待替换的字符串、替换字符。 返回值类型:text regexpmasking(col text, reg text, replace_text text, pos INTEGER default 0, reg_len INTEGER default -1) 描述:将col字符串使用正则表达式替换。 参数:待替换的字符串、正则表达式、替换的起始位置、替换长度。 返回值类型:text 父主题: 函数和操作符
  • java.sql.ResultSetMetaData java.sql.ResultSetMetaData是对ResultSet对象相关信息的具体描述。 表1 对java.sql.ResultSetMetaData的支持情况 方法名 返回值类型 支持JDBC 4 getCatalogName(int column) String Yes getColumnClassName(int column) String Yes getColumnCount() int Yes getColumnDisplaySize(int column) int Yes getColumnLabel(int column) String Yes getColumnName(int column) String Yes getColumnType(int column) int Yes getColumnTypeName(int column) String Yes getPrecision(int column) int Yes getScale(int column) int Yes getSchemaName(int column) String Yes getTableName(int column) String Yes isAutoIncrement(int column) boolean Yes isCaseSensitive(int column) boolean Yes isCurrency(int column) boolean Yes isDefinitelyWritable(int column) boolean Yes isNullable(int column) int Yes isReadOnly(int column) boolean Yes isSearchable(int column) boolean Yes isSigned(int column) boolean Yes isWritable(int column) boolean Yes 父主题: JDBC接口参考
  • PG_COLLATION PG_COLLATION系统表描述可用的排序规则,本质上从一个SQL名称映射到操作系统本地类别。 表1 PG_COLLATION字段 名称 类型 引用 描述 oid oid - 行标识符(隐含字段,必须明确选择)。 collname name - 排序规则名(每个名称空间和编码唯一)。 collnamespace oid PG_NAMESPACE.oid 包含这个排序规则的名称空间的OID。 collowner oid PG_AUTHID.oid 排序规则的所有者。 collencoding integer - 排序规则可用的编码,兼容PostgreSQL所有的字符编码类型,如果适用于任意编码为-1。 collcollate name - 这个排序规则对象的LC_COLLATE。 collctype name - 这个排序规则对象的LC_CTYPE。 collpadattr text - 这个排序规则的填充属性。 NULL:不适用。 NO PAD:无填充。 PAD SPACE:末尾空白填充。 collisdef boolean - 这个排序规则是否是所属字符集的默认字符序。 父主题: 系统表
  • PG_COMM_SEND_STREAM PG_COMM_SEND_STREAM视图展示单个DN上所有的通信库发送流状态。 表1 PG_COMM_SEND_STREAM字段 名称 类型 描述 node_name text 节点名称。 local_tid bigint 使用此通信流的线程ID。 remote_name text 连接对端节点名称。 remote_tid bigint 连接对端线程ID。 idx integer 通信对端DN在本DN内的标识编号。 sid integer 通信流在物理连接中的标识编号。 tcp_sock integer 通信流所使用的tcp通信socket。 state text 通信流当前的状态。 UNKNOWN:表示当前逻辑连接状态未知。 READY:表示逻辑连接已就绪。 RUN:表示逻辑连接发送报文正常。 HOLD:表示逻辑连接发送报文等待中。 CLOSED:表示关闭逻辑连接。 TO_CLOSED:表示将会关闭逻辑连接。 query_id bigint 通信流对应的debug_query_id编号。 pn_id integer 通信流所执行查询的plan_node_id编号。 send_smp integer 通信流所执行查询send端的smpid编号。 recv_smp integer 通信流所执行查询recv端的smpid编号。 send_bytes bigint 通信流发送的数据总量,单位Byte。 time bigint 通信流当前生命周期使用时长,单位ms。 speed bigint 通信流的平均发送速率,单位Byte/s。 quota bigint 通信流当前的通信配额值,单位Byte。 wait_quota bigint 通信流等待quota值产生的额外时间开销,单位ms。 父主题: 系统视图
  • GS_DEPENDENCIES_OBJ GS_DEPENDENCIES_OBJ系统表记录对象的被依赖项详细信息。 表1 GS_DEPENDENCIES_OBJ字段 名称 类型 描述 schemaname name 名称空间的名称。 type integer 被依赖体的类型。 1:未知类型。 2:变量。 3:类型。 4:函数。 5:视图。 6:函数头。 name text 被依赖体名称。 objnode pg_node_tree 被依赖体的详细信息。 父主题: 系统表
  • 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 INSTANCE_TIME字段 名称 类型 描述 stat_id integer 统计编号。 stat_name text 类型名称。 value bigint 时间值(单位:微秒)。 父主题: Instance
  • DB_SEQUENCES DB_SEQUENCES视图显示当前用户能够访问的所有序列的信息。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 DB_SEQUENCES字段 名称 类型 描述 sequence_owner name 序列所有者。 sequence_name name 序列的名称。 min_value int16 序列最小值。 max_value int16 序列最大值。 last_number int16 上一序列的值。 cache_size int16 序列磁盘缓存大小。 increment_by int16 序列的增量。 cycle_flag character(1) 表示序列是否是循环序列,取值为Y或N: Y表示是循环序列。 N表示不是循环序列。 order_flag character varying(1) 标志序列是否按照请求顺序发生。暂不支持,值为NULL。 scale_flag character varying(1) 标志是否为可扩展序列。暂不支持,值为NULL。 extend_flag character varying(1) 标志可扩展序列生成的值是否超出序列最大值、最小值范围。暂不支持,值为NULL。 sharded_flag character varying(1) 标志是否为分片序列。暂不支持,值为NULL。 session_flag character varying(1) 标志序列是否为私有会话。暂不支持,值为NULL。 keep_value character varying(1) 标志在失败后的replay期间是否保留序列值。暂不支持,值为NULL。 父主题: 系统视图
  • 语法格式 重命名表空间的语法。 1 2 ALTER TABLESPACE tablespace_name RENAME TO new_tablespace_name; 设置表空间所有者的语法。 1 2 ALTER TABLESPACE tablespace_name OWNER TO new_owner; 设置表空间属性的语法。 1 2 ALTER TABLESPACE tablespace_name SET ( { tablespace_option = value } [, ... ] ); 重置表空间属性的语法。 1 2 ALTER TABLESPACE tablespace_name RESET ( { tablespace_option } [, ... ] ); 设置表空间限额的语法 1 2 ALTER TABLESPACE tablespace_name RESIZE MAXSIZE { UNLIMITED | 'space_size'};
  • 参数说明 tablespace_name 要修改的表空间。 取值范围:已存在的表空间名。 new_tablespace_name 表空间的新名称。 新名称不能以"PG_"开头。 取值范围:字符串,符合标识符命名规范。 new_owner 表空间的新所有者。 取值范围:已存在的用户名。 tablespace_option 设置或者重置表空间的参数。 取值范围: seq_page_cost:设置优化器计算一次顺序获取磁盘页面的开销。缺省为1.0。 random_page_cost:设置优化器计算一次非顺序获取磁盘页面的开销。缺省为4.0。 random_page_cost是相对于seq_page_cost的取值,等于或者小于seq_page_cost时毫无意义。 默认值为4.0的前提条件是,优化器采用索引来扫描表数据,并且表数据在cache中命中率可以90%左右。 如果表数据空间要比物理内存小,那么减小该值到一个适当水平;相反地,如果表数据在cache中命中率要低于90%,那么适当增大该值。 如果采用了类似于SSD的随机访问代价较小的存储器,可以适当减小该值,以反映真正的随机扫描代价。 value的取值范围:正的浮点类型。 RESIZE MAXSIZE 重新设置表空间限额的数值。 取值范围: UNLIMITED,该表空间不设置限额。 由space_size来确定,其格式参考CREATE TABLESPACE。 若调整后的限额值比当前表空间实际使用的值要小,调整操作可以执行成功,后续用户需要将该表空间的使用值降低到新限额值之下,才能继续往该表空间中写入数据。 修改参数MAXSIZE时也可使用: 1 2 ALTER TABLESPACE tablespace_name RESIZE MAXSIZE { 'UNLIMITED' | 'space_size'};
  • 注意事项 当前版本禁止使用ALTER TABLESPACE语法。 只有表空间的所有者或者被授予了表空间ALTER权限的用户有权限执行ALTER TABLESPACE命令,系统管理员默认拥有此权限。但要修改表空间的所有者,当前用户必须是该表空间的所有者或系统管理员,且该用户是新所有者角色的成员。 对行存表的ALTER TABLESPACE操作不支持在事务块中执行。 要修改表空间的所有者A为B,则A必须是B的直接或者间接成员。 如果new_owner与old_owner一致,此处不再校验当前执行操作的用户是否具有修改权限,而直接显示ALTER成功。
  • WAIT_EVENT_INFO WAIT_EVENT_INFO视图显示wait event的具体信息。 表1 WAIT_EVENT_INFO字段 名称 类型 描述 module text event所属的模块名。 type text event类型。 event text event名称。 表2 Wait Events事件信息列表 模块分类 事件分类 事件 说明 Lock 等待事件 acquire lock 等待加锁,要么加锁成功,要么加锁等待超时。 SharedMemory LWLOCK事件 ShmemIndexLock 用于保护共享内存中的主索引哈希表 Shared buffer LWLOCK事件 BufMappingLock 用于保护对共享缓冲映射表的操作。 Lmgr LWLOCK事件 LockMgrLock 用于保护常规锁结构信息。 LWLock 等待事件 acquire lwlock 等待获取轻量级锁 I/O 等待事件 wait io 等待IO完成 COMM 等待事件 wait cmd 等待完成读取网络通信包 COMM 等待事件 wait pooler get conn 等待pooler完成获取连接 COMM 等待事件 wait pooler abort conn 等待pooler完成终止连接 COMM 等待事件 wait pooler clean conn 等待pooler完成清理连接 COMM 等待事件 get conn 获取到其他节点的连接 COMM 等待事件 set cmd 在连接上执行SET/RESET/TRANSACTION BLOCK LEVEL COMM 等待事件 cancel query 取消某连接上正在执行的SQL语句 COMM 等待事件 stop query 停止某连接上正在执行的查询 COMM 等待事件 wait node 等待接收与某节点的连接上的数据 COMM 等待事件 flush data 等待向网络中的其他节点发送数据 COMM 等待事件 stream get conn 初始化stream flow时,等待建立到consumer nodes的连接。 COMM 等待事件 wait producer ready 初始化stream flow时,等待每个producer都准备好。 Stream 等待事件 synchronize quit steam plan结束时,等待stream线程组内的线程统一退出。 Stream 等待事件 wait stream group destroy steam plan结束时,等待销毁stream node group。 Transaction 等待事件 wait transaction sync 等待事务同步 Transaction 等待事件 wait data sync 等待完成数据页到备机的同步 Transaction 等待事件 wait data sync queue 等待把行存的数据页放入同步队列 Transaction LWLOCK事件 OidGenLock 用于避免不同线程产生相同的OID。 Transaction LWLOCK事件 XidGenLock 用于避免两个事务获得相同的xid。 Transaction LWLOCK事件 ProcArrayLock 用于避免并发访问或修改ProcArray共享数组。 Transaction LWLOCK事件 SubtransControlLock 用于避免并发访问或者修改子事务控制数据结构 Transaction LWLOCK事件 MultiXactGenLock 用于串行分配唯一MultiXactid Transaction LWLOCK事件 TwoPhaseStateLock 用于避免并发访问或者修改两阶段信息共享数组 Transaction LWLOCK事件 SerializableXactHashLock 用于避免对于可串行事务共享结构的写写并发和读写并发 Transaction LWLOCK事件 SerializableFinishedListLock 用于避免对于已完成可串行事务共享链表的写写并发和读写并发 Transaction LWLOCK事件 SerializablePredicateLockListLock 用于保护对于可串行事务持有的锁链表 Transaction LWLOCK事件 PredicateLockMgrLock 用于保护可串行事务锁结构信息。 Transaction LWLOCK事件 OldSerXid SLRU lwlock 保护old xids的slru buffer Transaction LWLOCK事件 OldSerXidLock 用于保护记录冲突可串行事务的结构 Transaction LOCK事件 transactionid 对事务ID加锁 Transaction LOCK事件 virtualxid 对虚拟事务ID加锁 Checkpoint LWLOCK事件 CheckpointLock 用于避免多个checkpoint并发执行 Checkpoint LWLOCK事件 CheckpointerCommLock 用于向checkpointer发起文件刷盘请求场景,需要串行的向请求队列插入请求结构。 Analyze LWLOCK事件 AutoanalyzeLock 用于获取和释放允许执行Autoanalyze的任务资源。 Vacuum LWLOCK事件 BtreeVacuumLock 用于防止vacuum清理btree中还在使用的页面。 Vacuum LWLOCK事件 AutovacuumLock 用于串行化访问autovacuum worker数组 Vacuum LWLOCK事件 AutovacuumScheduleLock 用于串行化分配需要vacuum的table Auto vacuum LWLOCK事件 AutovacuumLock 用于保护autovacuum shmem struct Auto vacuum LWLOCK事件 AutovacuumScheduleLock 用于保护auto vacuum worker信息 Auto analyze LWLOCK事件 AutoanalyzeLock 用于保护autoAnalyzeFreeProcess变量,保证最多有10个auto analyze线程同时运行。 WAL 等待事件 wait wal sync 等待特定LSN的wal log完成到备机的同步 WAL I/O事件 WALBootstrapSync 将初始化的WAL文件持久化到磁盘。在数据库初始化发生。 WAL I/O事件 WALBootstrapWrite 写入初始化的WAL文件。在数据库初始化发生。 WAL I/O事件 WALCopyRead 读取已存在的WAL文件并进行复制时产生的读操作。在执行归档恢复完后发生。 WAL I/O事件 WALCopySync 将复制的WAL文件持久化到磁盘。在执行归档恢复完后发生。 WAL I/O事件 WALCopyWrite 读取已存在WAL文件并进行复制时产生的写操作。在执行归档恢复完后发生。 WAL I/O事件 WALInitSync 将新初始化的WAL文件持久化磁盘。在日志回收或写日志时发生。 WAL I/O事件 WALInitWrite 将新创建的WAL文件初始化为0。在日志回收或写日志时发生。 WAL I/O事件 WALRead 从xlog日志读取数据。两阶段文件redo相关的操作产生。 WAL I/O事件 WALSyncMethodAssign 将当前打开的所有WAL文件持久化到磁盘。 WAL I/O事件 WALWrite 写入WAL文件。 WAL I/O事件 LOGCTRL_SLEEP 统计流控发生了多少次、日志流控的睡眠时间。 WAL LWLOCK事件 RcvWriteLock 防止并发调用WalDataRcvWrite。 WAL LWLOCK事件 WALBufMappingLock 初始化Xlogbufer的下一个page时需要加x锁。 WAL LWLOCK事件 WALInsertLock 用于防止多个程序同时向同一个xlog缓冲区写。 WAL LWLOCK事件 WALWriteLock 用于避免并发刷写wal日志。 Relation LWLOCK事件 SInvalReadLock 用于避免与清理失效消息并发执行。 Relation LWLOCK事件 SinvalWriteLock 用于避免与其它写失效消息、清理失效消息并发执行。 Relation LWLOCK事件 RelCacheInitLock 用于失效消息场景对init文件进行操作时加锁。 Relation LWLOCK事件 TablespaceCreateLock 用于确定tablespace是否已经存在。 Relation LWLOCK事件 RelfilenodeReuseLock 避免错误地取消已重用的列属性文件的链接。 Relation LOCK事件 relation 对表加锁。 Relation LOCK事件 extend 对表扩展空间时加锁。 Relation LOCK事件 partition 对分区表加锁。 Relation LOCK事件 partition_seq 对分区表的分区加锁。 WLM 等待事件 wait active statement WLM等待active statement。 WLM 等待事件 wait memory WLM 等待空余内存。 DDL/DCL 等待事件 create index 等待index创建成功。 DDL/DCL 等待事件 analyze 等待analyze完成。 DDL/DCL 等待事件 vacuum 等待vacuum 完成。 DDL/DCL LWLOCK事件 DelayDDLLock 防止并发ddl。 DDL/DCL 等待事件 vacuum full 等待vacuum full操作 完成。 Executor 等待事件 Sort 等待tuple 排序完成。 Executor 等待事件 Sort - write file 归并排序时内存受限,将排序完的数据暂时写入文件。 Executor 等待事件 Material 等待将tuple物化。 Executor 等待事件 Material - write file 等待将物化的tuple写入文件。 Executor 等待事件 HashJoin - build hash 执行hashJoin时,等待hashtable建立完成。 Executor 等待事件 HashJoin - write file 执行hashJoin时,等待将tuple的hash结果写到磁盘。 Executor 等待事件 HashAgg - build hash 执行hashagg时,等待hashtable建立完成。 Executor 等待事件 HashAgg - write file 执行hashagg时,等待将tuple的hash结果写到磁盘。 Executor 等待事件 HashSetop - build hash 通过hash方式执行OP操作时,等待建立hash表。 Executor 等待事件 HashSetop - write file 通过hash方式执行OP操作时,等待将tuple的hash结果写到磁盘。 Executor 等待事件 wait sync consumer next step 等待stream consumer进行下一步处理。 Executor 等待事件 wait sync producer next step 等待stream producer进行下一步处理。 GTM 等待事件 gtm connect 等待与gtm连接 GTM 等待事件 gtm reset xmin 等待gtm重新设置xmin完成 GTM 等待事件 gtm get xmin 等待从gtm获取xmin GTM 等待事件 gtm get gxid 启动事务时等待从gtm获取gxid GTM 等待事件 gtm get csn 事务提交时等待从gtm获取CSN GTM 等待事件 gtm get snapshot 事务启动时等待从gtm获取快照 GTM 等待事件 gtm begin trans 等待GTM开启事务 GTM 等待事件 gtm commit trans 等待GTM提交事务 GTM 等待事件 gtm rollback trans 等待GTM回滚事务 GTM 等待事件 gtm start preprare trans 两阶段提交时,等待GTM完成一阶段。 GTM 等待事件 gtm prepare trans 两阶段提交时,等待GTM完成第二阶段。 GTM 等待事件 gtm open sequence 等待gtm创建sequence。 GTM 等待事件 gtm close sequence 等待gtm完成alter sequence操作。 GTM 等待事件 gtm set sequence val 等待gtm设置sequence的值 GTM 等待事件 gtm drop sequence 等待gtm删除sequence GTM 等待事件 gtm rename sequence 等待gtm重命名sequence GTM LWLOCK事件 GTMHostInfoLock 用于保护gtm的信息 Temp File I/O事件 BufFileRead 从临时文件中读取数据到指定buffer Temp File I/O事件 BufFileWrite 向临时文件中写入指定buffer中的内容 Pg_control I/O事件 ControlFileRead 读取pg_control文件。主要在数据库启动、执行checkpoint和主备校验过程中发生。 Pg_control I/O事件 ControlFileSync 将pg_control文件持久化到磁盘。数据库初始化时发生。 Pg_control I/O事件 ControlFileSyncUpdate 将pg_control文件持久化到磁盘。主要在数据库启动、执行checkpoint和主备校验过程中发生。 Pg_control I/O事件 ControlFileWrite 写入pg_control文件。数据库初始化时发生。 Pg_control I/O事件 ControlFileWriteUpdate 更新pg_control文件。主要在数据库启动、执行checkpoint和主备校验过程中发生。 Pg_control LWLOCK事件 ControlFileLock 用于避免pg_control文件的读写并发、写写并发。 文件操作 I/O事件 CopyFileRead copy文件时读取文件内容 文件操作 I/O事件 CopyFileWrite copy文件时写入文件内容 文件操作 I/O事件 DataFileExtend 扩展文件时向文件写入内容 表数据文件 I/O事件 DataFileImmediateSync 将表数据文件立即持久化到磁盘 表数据文件 I/O事件 DataFilePrefetch 异步读取表数据文件 表数据文件 I/O事件 DataFileRead 同步读取表数据文件 表数据文件 I/O事件 DataFileSync 将表数据文件持久化磁盘 表数据文件 I/O事件 DataFileTruncate 表数据文件truncate 表数据文件 I/O事件 DataFileWrite 向表数据文件写入内容 表数据文件 LWLOCK事件 SyncScanLock 用于确定heap扫描时某个relfilenode的起始位置 表数据文件 LWLOCK事件 RelationMappingLock 用于等待更新系统表到存储位置之间映射的文件 元数据 LWLOCK事件 MetaCacheSweepLock 用于元数据循环淘汰 postmaster.pid I/O事件 LockFileAddToDataDirRead 读取"postmaster.pid"文件 postmaster.pid I/O事件 LockFileAddToDataDirSync 将"postmaster.pid"内容持久化到磁盘 postmaster.pid I/O事件 LockFileAddToDataDirWrite 将pid信息写到"postmaster.pid"文件 Pid File I/O事件 LockFileCreateRead 读取LockFile文件"%s.lock" Pid File I/O事件 LockFileCreateSync 将LockFile文件"%s.lock"内容持久化到磁盘 Pid File I/O事件 LockFileCreateWRITE 将pid信息写到LockFile文件"%s.lock" 系统表映射文件 I/O事件 RelationMapRead 读取系统表到存储位置之间的映射文件 系统表映射文件 I/O事件 RelationMapSync 将系统表到存储位置之间的映射文件持久化到磁盘 系统表映射文件 I/O事件 RelationMapWrite 写入系统表到存储位置之间的映射文件 Streaming replication I/O事件 ReplicationSlotRead 读取流复制槽文件。重新启动时发生 Streaming replication I/O事件 ReplicationSlotRestoreSync 将流复制槽文件持久化到文件 Streaming replication I/O事件 ReplicationSlotSync checkpoint时将流复制槽临时文件持久化到磁盘 Streaming replication I/O事件 ReplicationSlotWrite checkpoint时写流复制槽临时文件 Streaming replication LWLOCK事件 ReplicationSlotAllocationLock 方式分配同一个复制槽 Streaming replication LWLOCK事件 ReplicationSlotControlLock 检测复制槽名称冲突,识别出具体可分配的复制槽,需要ReplicationSlotControlLock锁。 Clog I/O事件 SLRUFlushSync 将pg_clog文件持久化到磁盘。主要在执行checkpoint和数据库停机时发生 Clog I/O事件 SLRURead 读取pg_clog文件 Clog I/O事件 SLRUSync 将脏页写入文件pg_clog并持久化到磁盘。主要在执行checkpoint和数据库停机时发生。 Clog I/O事件 SLRUWrite 写入pg_clog文件 Clog LWLOCK事件 CLogControlLock 用于避免并发访问或者修改Clog控制数据结构 Clog LWLOCK事件 MultiXactOffsetControlLock 用于避免对pg_multixact/offset的写写并发和读写并发 Clog LWLOCK事件 MultiXactMemberControlLock 用于避免对pg_multixact/members的写写并发和读写并发 timelinehistory I/O事件 TimelineHistoryRead 读取timelinehistory文件。在数据库启动时发生。 timelinehistory I/O事件 TimelineHistorySync 将timelinehistory文件持久化到磁盘。在数据库启动时发生。 timelinehistory I/O事件 TimelineHistoryWrite 写入timelinehistory文件 pg_twophase I/O事件 TwophaseFileRead 读取pg_twophase文件。在两阶段事务提交、两阶段事务恢复时发生。 pg_twophase I/O事件 TwophaseFileSync 将pg_twophase文件持久化到磁盘。在两阶段事务提交、两阶段事务恢复时发生。 pg_twophase I/O事件 TwophaseFileWrite 写入pg_twophase文件。在两阶段事务提交、两阶段事务恢复时发生。 Cluster LWLOCK事件 NodeTableLock 用于保护存放CN和DN节点信息的共享结构 Concurrency LWLOCK事件 PoolerLock 用于保证两个线程不会同时从连接池里取到相同的连接 Concurrency LWLOCK事件 AsyncCtlLock 用于避免并发访问或者修改共享通知状态 Concurrency LWLOCK事件 AsyncQueueLock 用于避免并发访问或者修改共享通知信息队列 Double write I/O事件 DoubleWriteFileWrite Double write过程中将页面写到Double write文件中 Double write I/O事件 DoubleWriteFileRead 发生半写进行恢复时读取Double write文件 Statistics file LWLOCK事件 FileStatLock 用于保护存储统计文件信息的数据结构 Master-slave replication LWLOCK事件 SyncRepLock 用于在主备复制时保护xlog同步信息。 Master-slave replication LWLOCK事件 ReplicationSlotAllocationLock 用于主备复制时保护主机端的流复制槽的分配。 Master-slave replication LWLOCK事件 ReplicationSlotControlLock 用于主备复制时避免并发更新流复制槽状态。 Master-slave replication LWLOCK事件 LsnXlogChkFileLock 用于串行更新特定结构中记录的主备机的xlogflush位置点 Master-slave replication LWLOCK事件 DataSyncRepLock 用于在主备复制时保护数据页同步信息。 Speed up the cluster LWLOCK事件 SearchServerLibLock 用于GPU加速场景初始化加载特定动态库时,对读文件操作进行加锁。 Resource manage LWLOCK事件 ResourcePoolHashLock 用于避免并发访问或者修改资源池哈希表。 Resource manage LWLOCK事件 WorkloadStatHashLock 用于避免并发访问或者修改包含CN侧的SQL请求构成的哈希表。 Resource manage LWLOCK事件 WorkloadIoStatHashLock 用于避免并发访问或者修改用于统计当前DN的IO信息的哈希表。 Resource manage LWLOCK事件 WorkloadCGroupHashLock 用于避免并发访问或者修改cgroup信息构成的哈希表。 Resource manage LWLOCK事件 WorkloadRecordLock 用于避免并发访问或修改在内存自适应管理时对CN收到请求构成的哈希表。 Resource manage LWLOCK事件 WorkloadIOUtilLock 用于保护记录iostat,CPU等负载信息的结构。 Resource manage LWLOCK事件 WorkloadNodeGroupLock 用于避免并发访问或者修改内存中的nodegroup信息构成的哈希表。 OBS LWLOCK事件 OBSGetPathLock 用于避免对obs路径的写写并发和读写并发。 OBS LWLOCK事件 OBSRuntimeLock 用于获取环境变量,如GASSHOME。 MPP is compatible with ORACLE scheduled task function LWLOCK事件 JobShmemLock 用于MPP兼容ORACLE定时任务功能中保护定时读取的全局变量。 Operator history information statistics LWLOCK事件 OperatorRealTLock 用于避免并发访问或者修改记录算子级实时数据的全局结构。 Operator history information statistics LWLOCK事件 OperatorHistLock 用于避免并发访问或者修改记录算子级历史数据的全局结构。 query history information statistics LWLOCK事件 SessionRealTLock 用于避免并发访问或者修改记录query级实时数据的全局结构。 query history information statistics LWLOCK事件 SessionHistLock 用于避免并发访问或者修改记录query级历史数据的全局结构。 query history information statistics LWLOCK事件 WaitCountHashLock 用于保护用户语句计数功能场景中的共享结构。 barrier LWLOCK事件 BarrierLock 用于保证当前只有一个线程在创建Barrier。 CSN LWLOCK事件 CSNBufMappingLock 保护csn页面 instrumentation LWLOCK事件 UniqueSQLMappingLock 用于保护uniquesql hash table instrumentation LWLOCK事件 InstrUserLock 用于保护InstrUserHTAB。 instrumentation LWLOCK事件 PercentileLock 用于保护全局PercentileBuffer instrumentation LWLOCK事件 InstrWorkloadLock 保护全局instr workload xact info hash table Pgproc LWLOCK事件 Pgproc lwlock 用于保护pgproc Async buffer LWLOCK事件 AsyncCtlLock 保护Async buffer MultiXact LWLOCK事件 MultiXactOffset lwlock 保护MultiXact offet的slru buffer MultiXact LWLOCK事件 MultiXactMemberlwlock 保护MultiXact member的slrubuffer CBM LWLOCK事件 CBMParseXlogLock Cbm 解析xlog时的保护锁 BadBlock LWLOCK事件 BadBlockStatHashLock 用于保护global_bad_block_stat hash表 Page LOCK事件 page 对表页面加锁 Tuple LOCK事件 tuple 对页面上的tuple加锁 object LOCK事件 object 加对象锁 user LOCK事件 userlock 加用户锁 advisor LOCK事件 advisory 加advisory锁 ODBC LWLOCK事件 ExtensionConnectorLibLock 用于初始化ODBC连接场景,在加载与卸载特定动态库时进行加锁。 父主题: Wait Events
  • PG_INHERITS PG_INHERITS系统表记录关于表继承层次的信息。数据库里每个直接的子系表都有一条记录。间接的继承可以通过追溯记录链来判断。 表1 PG_INHERITS字段 名称 类型 引用 描述 inhrelid oid PG_CLASS.oid 子表的OID。 inhparent oid PG_CLASS.oid 父表的OID。 inhseqno integer - 如果一个子表存在多个直系父表(多重继承),这个数字表明此继承字段的排列顺序。计数从1开始。 父主题: 系统表
  • BGWRITER_STAT BGWRITER_STAT视图显示关于后端写进程活动的统计信息。 表1 BGWRITER_STAT字段 名称 类型 描述 checkpoints_timed bigint 执行的定期检查点数。 checkpoints_req bigint 执行的需求检查点数。 checkpoint_write_time double precision 花费在检查点处理部分的时间总量,其中文件被写入到磁盘,以毫秒为单位。 checkpoint_sync_time double precision 花费在检查点处理部分的时间总量,其中文件被同步到磁盘,以毫秒为单位。 buffers_checkpoint bigint 检查点写缓冲区数量。 buffers_clean bigint 后端写进程写缓冲区数量。 maxwritten_clean bigint 后端写进程停止清理扫描时间数,因为它写了太多缓冲区。 buffers_backend bigint 通过后端直接写缓冲区数。 buffers_backend_fsync bigint 后端不得不执行自己的fsync调用的时间数(通常后端写进程处理这些即使后端确实自己写)。 buffers_alloc bigint 分配的缓冲区数量。 stats_reset timestamp with time zone 这些统计被重置的时间。 父主题: Utility
  • 语法格式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 CREATE NODE nodename WITH ( [ TYPE = nodetype,] [ HOST = hostname,] [ PORT = portnum,] [ HOST1 = 'hostname',] [ PORT1 = portnum,] [ HOSTPRIMARY [ = boolean ],] [ PRIMARY [ = boolean ],] [ PREFERRED [ = boolean ],] [ SCTP_PORT = portnum,] [ CONTROL_PORT = portnum,] [ SCTP_PORT1 = portnum,] [ CONTROL_PORT1 = portnum ] );
  • 参数说明 nodename 节点名称。 取值范围:字符串,要符合标识符命名规范。 TYPE = nodetype 指定节点的类型。 取值范围: 'coordinator' 'datanode' HOST = hostname 指定节点对应的主机名称或者IP地址。 PORT = portnum 指定节点绑定的主机端口号。 HOST1 = hostname 指定节点对应的备机名称或者IP地址。 PORT1 = portnum 指定节点绑定的备机端口号。 HOSTPRIMARY PRIMARY = boolean 声明该节点是否为主节点。主节点允许做读写操作,否则只允许读操作。 取值范围: true false(默认值) PREFERRED = boolean 声明该节点是否为读操作的首选节点。 取值范围: true false(默认值) SCTP_PORT = portnum 主机TCP代理通信库使用的数据传输通道侦听端口,使用TCP协议侦听连接。
  • 数组函数 array_append(anyarray, anyelement) 描述:向数组末尾添加元素,只支持一维数组。 返回类型:anyarray 示例: 1 2 3 4 5 gaussdb=# SELECT array_append(ARRAY[1,2], 3) AS RESULT; result --------- {1,2,3} (1 row) array_prepend(anyelement, anyarray) 描述:向数组开头添加元素,只支持一维数组。 返回类型:anyarray 示例: 1 2 3 4 5 gaussdb=# SELECT array_prepend(1, ARRAY[2,3]) AS RESULT; result --------- {1,2,3} (1 row) array_cat(anyarray, anyarray) 描述:连接两个数组,支持多维数组。 返回类型:anyarray 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT array_cat(ARRAY[1,2,3], ARRAY[4,5]) AS RESULT; result ------------- {1,2,3,4,5} (1 row) gaussdb=# SELECT array_cat(ARRAY[[1,2],[4,5]], ARRAY[6,7]) AS RESULT; result --------------------- {{1,2},{4,5},{6,7}} (1 row) array_union(anyarray, anyarray) 描述:连接两个数组,只支持一维数组。有入参为NULL时返回另一个入参。 返回类型:anyarray 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT array_union(ARRAY[1,2,3], ARRAY[3,4,5]) AS RESULT; result ------------- {1,2,3,3,4,5} (1 row) gaussdb=# SELECT array_union(ARRAY[1,2,3], NULL) AS RESULT; result --------- {1,2,3} (1 row) array_union_distinct(anyarray, anyarray) 描述:连接两个数组,并去重,只支持一维数组。有入参为NULL时返回另一个入参。 返回类型:anyarray 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT array_union_distinct(ARRAY[1,2,3], ARRAY[3,4,5]) AS RESULT; result ------------- {1,2,3,4,5} (1 row) gaussdb=# SELECT array_union_distinct(ARRAY[1,2,3], NULL) AS RESULT; result --------- {1,2,3} (1 row) array_intersect(anyarray, anyarray) 描述:两个数组取交集,只支持一维数组。有入参为NULL时返回NULL。 返回类型:anyarray 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT array_intersect(ARRAY[1,2,3], ARRAY[3,4,5]) AS RESULT; result ------------- {3} (1 row) gaussdb=# SELECT array_intersect(ARRAY[1,2,3], NULL) AS RESULT; result -------- (1 row) array_intersect_distinct(anyarray, anyarray) 描述:两个数组取交集,并去重,只支持一维数组。有入参为NULL时返回NULL。 返回类型:anyarray 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT array_intersect_distinct(ARRAY[1,2,2], ARRAY[2,2,4,5]) AS RESULT; result ------------- {2} (1 row) gaussdb=# SELECT array_intersect_distinct(ARRAY[1,2,3], NULL) AS RESULT; result -------- (1 row) array_except(anyarray, anyarray) 描述:两个数组取差,只支持一维数组。第一个入参为NULL时返回NULL,第二个入参为NULL时返回第一个入参。 返回类型:anyarray 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 gaussdb=# SELECT array_except(ARRAY[1,2,3], ARRAY[3,4,5]) AS RESULT; result ------------- {1,2} (1 row) gaussdb=# SELECT array_except(ARRAY[1,2,3], NULL) AS RESULT; result --------- {1,2,3} (1 row) gaussdb=# SELECT array_except(NULL, ARRAY[3,4,5]) AS RESULT; result -------- (1 row) array_except_distinct(anyarray, anyarray) 描述:两个数组取差,并去重,只支持一维数组。第一个入参为NULL时返回NULL,第二个入参为NULL时返回第一个入参。 返回类型:anyarray 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 gaussdb=# SELECT array_except_distinct(ARRAY[1,2,2,3], ARRAY[3,4,5]) AS RESULT; result ------------- {1,2} (1 row) gaussdb=# SELECT array_except_distinct(ARRAY[1,2,3], NULL) AS RESULT; result --------- {1,2,3} (1 row) gaussdb=# SELECT array_except_distinct(NULL, ARRAY[3,4,5]) AS RESULT; result -------- (1 row) array_ndims(anyarray) 描述:返回数组的维数。 返回类型:int 示例: 1 2 3 4 5 gaussdb=# SELECT array_ndims(ARRAY[[1,2,3], [4,5,6]]) AS RESULT; result -------- 2 (1 row) array_dims(anyarray) 描述:返回数组维数的文本表示。 返回类型:text 示例: 1 2 3 4 5 gaussdb=# SELECT array_dims(ARRAY[[1,2,3], [4,5,6]]) AS RESULT; result ------------ [1:2][1:3] (1 row) array_length(anyarray, int) 描述:返回数组维度的长度。 返回类型:int 示例: 1 2 3 4 5 gaussdb=# SELECT array_length(array[1,2,3], 1) AS RESULT; result -------- 3 (1 row) array_lower(anyarray, int) 描述:返回数组维数的下界。 返回类型:int 示例: 1 2 3 4 5 gaussdb=# SELECT array_lower('[0:2]={1,2,3}'::int[], 1) AS RESULT; result -------- 0 (1 row) array_sort(anyarray) 描述:返回从小到大排列好的数组。 返回类型:anyarray 示例: 1 2 3 4 5 gaussdb=# SELECT array_sort(ARRAY[5,1,3,6,2,7]) AS RESULT; result ------------- {1,2,3,5,6,7} (1 row) array_upper(anyarray, int) 描述:返回数组维数的上界。 返回类型:int 示例: 1 2 3 4 5 gaussdb=# SELECT array_upper(ARRAY[1,8,3,7], 1) AS RESULT; result -------- 4 (1 row) array_to_string(anyarray, text [, text]) 描述:使用第一个text作为数组的新分隔符,使用第二个text替换数组值为NULL的值。 返回类型:text 示例: 1 2 3 4 5 gaussdb=# SELECT array_to_string(ARRAY[1, 2, 3, NULL, 5], ',', '*') AS RESULT; result ----------- 1,2,3,*,5 (1 row) array_delete(anyarray) 描述:清空数组中的元素并返回一个同类型的空数组。 返回类型:anyarray 示例: gaussdb=# SELECT array_delete(ARRAY[1,8,3,7]) AS RESULT; result -------- {} (1 row) array_deleteidx(anyarray, int) 描述:从数组中删除指定下标的元素并返回剩余元素组成的数组。 返回类型:anyarray 示例: gaussdb=# SELECT array_deleteidx(ARRAY[1,2,3,4,5], 1) AS RESULT; result ----------- {2,3,4,5} (1 row) array_deleteidx(anyarray, int)此函数在ORA兼容模式数据库中且参数a_format_version值为10c和a_format_dev_version值为s1的情况下被禁用。 array_extendnull(anyarray, int) 描述:往数组尾部添加指定个数空元素。 返回类型:anyarray 示例: gaussdb=# SELECT array_extendnull(ARRAY[1,8,3,7],1) AS RESULT; result -------------- {1,8,3,7,null} (1 row) array_extendnull(anyarray, int, int) 描述:往数组尾部添加指定个数的指定索引的元素。 返回类型:anyarray 示例: gaussdb=# SELECT array_extendnull(ARRAY[1,8,3,7],2,2) AS RESULT; result -------------- {1,8,3,7,8,8} (1 row) array_extendnull(anyarray, int, int)此函数在ORA兼容模式数据库中且参数a_format_version值为10c和a_format_dev_version值为s1的情况下有效。 array_trim(anyarray, int) 描述:从数组尾部删除指定个数个元素。 返回类型:anyarray 示例: gaussdb=# SELECT array_trim(ARRAY[1,8,3,7],1) AS RESULT; result --------- {1,8,3} (1 row) array_exists(anyarray, int) 描述:检查第二个参数是否是数组的合法下标。 返回类型:boolean 示例: gaussdb=# SELECT array_exists(ARRAY[1,8,3,7],1) AS RESULT; result -------- t (1 row) array_next(anyarray, int) 描述:根据第二个入参返回数组中指定下标元素的下一个元素的下标。 返回类型:int 示例: gaussdb=# SELECT array_next(ARRAY[1,8,3,7],1) AS RESULT; result -------- 2 (1 row) array_prior(anyarray, int) 描述:根据第二个入参返回数组中指定下标元素的上一个元素的下标。 返回类型:int 示例: gaussdb=# SELECT array_prior(ARRAY[1,8,3,7],2) AS RESULT; result -------- 1 (1 row) string_to_array(text, text [, text]) 描述:使用第二个text指定分隔符,使用第三个可选的text作为NULL值替换模板,如果分隔后的子串与第三个可选的text完全匹配,则将其替换为NULL。 返回类型:text[] 示例: 1 2 3 4 5 6 7 8 9 10 gaussdb=# SELECT string_to_array('xx~^~yy~^~zz', '~^~', 'yy') AS RESULT; result -------------- {xx,NULL,zz} (1 row) gaussdb=# SELECT string_to_array('xx~^~yy~^~zz', '~^~', 'y') AS RESULT; result ------------ {xx,yy,zz} (1 row) unnest(anyarray) 描述:扩大一个数组为一组行。 返回类型:setof anyelement 示例: 1 2 3 4 5 6 gaussdb=# SELECT unnest(ARRAY[1,2]) AS RESULT; result -------- 1 2 (2 rows)
  • 参数 表1 SQLAllocHandle参数 关键字 参数说明 HandleType 由SQLAllocHandle分配的句柄类型。必须为下列值之一: SQL_HANDLE_ENV(环境句柄) SQL_HANDLE_DBC(连接句柄) SQL_HANDLE_STMT(语句句柄) SQL_HANDLE_DESC(描述句柄) 申请句柄顺序为,先申请环境句柄,再申请连接句柄,最后申请语句句柄,后申请的句柄依赖它前面申请的句柄。 InputHandle 将要分配的新句柄的类型。 如果HandleType为SQL_HANDLE_ENV,则该值为SQL_NULL_HANDLE。 如果HandleType为SQL_HANDLE_DBC,则它一定是一个环境句柄。 如果HandleType为SQL_HANDLE_STMT或SQL_HANDLE_DESC,则它一定是一个连接句柄。 OutputHandlePtr 输出参数:一个缓冲区的指针,此缓冲区以新分配的数据结构存放返回的句柄。
  • 注意事项 当分配的句柄并非环境句柄时,如果SQLAllocHandle返回的值为SQL_ERROR,则它会将OutputHandlePtr的值设置为SQL_NULL_HDBC、SQL_NULL_HSTMT或SQL_NULL_HDESC。之后,通过调用带有适当参数的SQLGetDiagRec,其中HandleType和Handle被设置为IntputHandle的值,可得到相关的SQLSTATE值,通过SQLSTATE值可以查出调用此函数的具体信息。
  • PG_ENUM PG_ENUM系统表包含显示每个枚举类型值和标签的记录。给定枚举类型的内部表示实际上是PG_ENUM里面相关行的OID。 表1 PG_ENUM字段 名称 类型 引用 描述 oid oid - 行标识符(隐含属性,必须明确选择)。 enumtypid oid PG_TYPE.oid 拥有这个枚举值的13.2.108 PG_TYPE记录的OID。 enumsortorder real - 这个枚举值在它的枚举类型中的排序位置。 enumlabel name - 这个枚举值的文本标签。 PG_ENUM行的OID跟着一个特殊规则:偶数的OID保证用和它们的枚举类型一样的排序顺序排序。也就是,如果两个偶数OID属于相同的枚举类型,那么较小的OID必须有较小enumsortorder值。奇数OID需要毫无关系的排序顺序。这个规则允许枚举比较例程在许多常见情况下避开目录查找。创建和修改枚举类型的例程只要可能就尝试分配偶数OID给枚举值。 当创建了一个枚举类型时,它的成员赋予了排序顺序位置1到n。但是随后添加的成员可能会分配enumsortorder的负值或分数值。对这些值的唯一要求是它们要正确的排序和在每个枚举类型中唯一。 父主题: 系统表
  • GLOBAL_STAT_SYS_TABLES 显示数据库各节点pg_catalog、information_schema以及pg_toast模式下所有系统表的统计信息(不同节点数据不汇总求和)。 表1 GLOBAL_STAT_SYS_TABLES字段 名称 类型 描述 node_name name 节点名称。 relid oid 表的OID。 schemaname name 此表所在的Schema名。 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 估计不活跃行数。 last_vacuum timestamp with time zone 最后一次此表是手动清理的(不计算VACUUM FULL)时间。 last_autovacuum timestamp with time zone 上次被autovacuum守护线程清理的时间。 last_analyze timestamp with time zone 上次手动分析这个表的时间。 last_autoanalyze timestamp with time zone 上次被autovacuum守护线程分析的时间。 vacuum_count bigint 这个表被手动清理的次数(不计算VACUUM FULL)。 autovacuum_count bigint 这个表被autovacuum清理的次数。 analyze_count bigint 这个表被手动分析的次数。 autoanalyze_count bigint 这个表被autovacuum守护线程分析的次数。 父主题: Object
  • GLOBAL_STAT_XACT_USER_FUNCTIONS 显示数据库各节点,本事务内函数执行的统计信息(不同节点下的数据不进行汇总求和)。 表1 GLOBAL_STAT_XACT_USER_FUNCTIONS字段 名称 类型 描述 node_name name 节点名称。 funcid oid 函数标识。 schemaname name 函数所在Schema名。 funcname name 函数名称。 calls bigint 函数被调用的次数。 total_time double precision 此函数及其调用的所有其他函数所花费的总时间。 self_time double precision 在此函数本身中花费的总时间(不包括它调用的其他函数)。 父主题: Object
  • GS_MASKING_POLICY GS_MASKING_POLICY系统表记录动态数据脱敏策略的主体信息,每条记录对应一个脱敏策略。需要有系统管理员或安全策略管理员权限才可以访问此系统表。 表1 GS_MASKING_POLICY表字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 polname name 策略名称,唯一不可重复。 polcomments name 策略描述字段,记录策略相关的描述信息,通过COMMENTS关键字体现。 modifydate timestamp without time zone 策略创建或修改的最新时间戳。 polenabled boolean 策略启动开关。 t(true):表示策略启动。 f(false):表示策略没有启动。 父主题: 系统表
  • DB_ARGUMENTS DB_ARGUMENTS视图显示当前用户可访问的存储过程和函数的参数信息。该视图同时存在于PG_CATALOG和SYS Schema下。该视图所有用户都可以访问,显示当前用户可访问的所有信息。 表1 DB_ARGUMENTS字段 名称 类型 描述 owner character varying(128) 函数或存储过程的所有者。 object_name character varying(128) 函数或存储过程的名称。 package_name character varying(128) 包名。 object_id oid 函数或存储过程的OID。 overload character varying(40) 表示该函数是该名称的第n个重载函数。 subprogram_id numeric 包中函数或存储过程的位置。 argument_name character varying(128) 参数名称。 position numeric 该参数在参数列表中的位置,函数的返回值位置默认为0。 sequence numeric 定义参数的顺序,从1开始,返回类型在前,然后是每个参数。 data_level numeric 复合类型参数的嵌套深度,此列的值始终为0,因为每个参数现在只显示一行。 data_type character varying(64) 参数的数据类型。 defaulted character varying(1) 参数是否有默认值: Y:表示有默认值。 N:表示没有默认值。 default_value text 暂不支持,值为NULL。 default_length numeric 暂不支持,值为NULL。 in_out character varying(9) 参数出入属性: IN:表示入参。 OUT:表示出参。 IN_OUT:表示出入参。 VARIADIC:表示VARIADIC参数。 data_length numeric 暂不支持,值为NULL。 data_precision numeric 暂不支持,值为NULL。 data_scale numeric 暂不支持,值为NULL。 radix numeric 数字的参数基数,smallint、integer、bigint、numeric、float为10,其余为空。 character_set_name character varying(44) 暂不支持,值为NULL。 type_owner character varying(128) 数据类型所有者。 type_name character varying(128) 参数类型名,仅显示自定义类型。 type_subname character varying(128) 暂不支持,值为NULL。 type_link character varying(128) 暂不支持,值为NULL。 type_object_type character varying(7) 由type_owner、type_name和type_subname列描述的类型的类型: TABLE:表示参数为表类型。 VIEW:表示参数为视图类型。 其余置NULL。 pls_type character varying(128) 对于数字类型参数,为参数的PL/SQL类型的名称,否则为空。 char_length numeric 暂不支持,值为NULL。 char_used character varying(1) 暂不支持,varchar,nvarchar2,bpchar,char类型置B,其余值为NULL。 origin_con_id character varying(256) 暂不支持,值为0。 父主题: 系统视图
  • 服务器信号函数 服务器信号函数向其他服务器进程发送控制信号。只有系统管理员有权执行以下函数。 pg_cancel_backend(pid int) 描述:取消一个后端线程正在执行的语句。 返回值类型:Boolean 备注:pg_cancel_backend向由pid标识的后端进程发送一个查询取消(SIGINT)信号。一个活动的后端进程的PID可以从pg_stat_activity视图的pid字段找到,或者在服务器上用ps列出数据库进程。具有SYSADMIN权限的用户,后端进程所连接的数据库的属主,后端进程的属主或者继承了内置角色gs_role_signal_backend权限的用户有权使用该函数。 pg_cancel_session(pid bigint, sessionid bigint) 描述:线程池模式下,取消一个活跃状态会话正在执行的语句。 返回值类型:Boolean 备注:pg_cancel_session的入参可以通过pg_stat_activity中的pid字段和sessionid的字段查询,可以用于清理线程池模式下,活跃状态会话正在执行的语句。当入参pid和sessionid相同,且均为线程id时,功能和pg_cancel_backend相同。 pg_reload_conf() 描述:导致所有服务器进程重新装载它们的配置文件。 返回值类型:Boolean 备注:pg_reload_conf给服务器发送一个SIGHUP信号,导致所有服务器进程重新装载配置文件。 pg_rotate_logfile() 描述:滚动服务器的日志文件。 返回值类型:Boolean 备注:pg_rotate_logfile给日志文件管理器发送信号,使之立即切换到一个新的输出文件。这个函数只有在redirect_stderr用于日志输出的时候才有用,否则不会产生日志文件管理器子进程。 pg_terminate_backend(pid int) 描述:终止一个后台线程。 返回值类型:Boolean 备注:如果成功,函数返回true,否则返回false。具有SYSADMIN权限的用户,后端线程所连接的数据库的属主,后端线程的属主或者继承了内置角色gs_role_signal_backend权限的用户有权使用该函数。若执行该函数后未成功终止目标会话,则会强制关闭该会话和客户端的socket连接。 该函数可终止非线程池的线程、活跃状态的线程池线程,但无法终止非活跃状态的线程池线程。 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT pid from pg_stat_activity; pid ----------------- 140657876268816 (1 rows) gaussdb=# SELECT pg_terminate_backend(140657876268816); pg_terminate_backend ---------------------- t (1 row) pg_terminate_session(pid int64, sessionid int64) 描述:线程池模式下,终止一个后台session。 返回值类型:Boolean 备注:如果成功,函数返回true,否则返回false。具有SYSADMIN权限的用户、会话所连接的数据库的属主、会话的属主、或者继承了内置角色gs_role_signal_backend权限的用户有权使用该函数。若执行该函数后未成功终止目标会话,则会强制关闭该会话和客户端的socket连接。 当入参pid和sessionid相同,且均为线程id时,该函数可终止非线程池的线程、活跃状态的线程池线程。 当入参pid和sessionid不同时,该函数可终止活跃状态的会话,或关闭非活跃状态会话和客户端的socket连接。 pg_terminate_active_session_socket(pid int64, sessionid int64) 描述:关闭一个活跃session和客户端的socket连接。 返回值类型:Boolean 备注:如果成功,函数返回true,否则返回false。具有SYSADMIN权限的用户、后端线程所连接的数据库的属主、后端线程的属主或者继承了内置角色gs_role_signal_backend权限的用户有权使用该函数。 父主题: 系统管理函数
  • MPP_TABLES MPP_TABLES视图显示信息如下。 表1 MPP_TABLES字段 名称 类型 描述 schemaname name 表的模式名。 tablename name 表名。 tableowner name 表的所有者。 tablespace name 表所在的表空间。 pgroup name 节点群的名称。 nodeoids oidvector_extend 表分布的节点OID列表。 父主题: 系统视图
  • 注意事项 PQprepare创建一个为PQexecPrepared执行用的预备语句,本特性支持命令的重复执行,不需要每次都进行解析和规划。PQprepare仅在协议3.0及以后的连接中支持,使用协议2.0时,PQprepare将失败。 该函数从查询字符串创建一个名为stmtName的预备语句,该查询字符串必须包含一个SQL命令。stmtName可以是""来创建一个未命名的语句,在这种情况下,任何预先存在的未命名的语句都将被自动替换,否则,如果在当前会话中已经定义了语句名称,则这是一个错误。如果使用了任何参数,那么在查询中将它们称为$1,$2等。nParams是在paramTypes[]数组中预先指定类型的参数的数量。(当nParams为0时,数组指针可以为NULL)paramTypes[]通过OID指定要分配给参数符号的数据类型。如果paramTypes为NULL,或者数组中的任何特定元素为零,服务器将按照对非类型化字面字符串的相同方式为参数符号分配数据类型。另外,查询可以使用数字高于nParams的参数符号,还将推断这些符号的数据类型。 通过执行SQLPREPARE语句,还可以创建与PQexecPrepared一起使用的预备语句。此外,虽然没有用于删除预备语句的libpq函数,但是SQL DEALLOCATE语句可用于此目的。
  • DBE_PLDEBUGGER.backtrace debug端调试过程中,调用backtrace,查看当前的调用堆栈。 表1 backtrace返回值列表 名称 类型 描述 frameno OUT integer 调用栈编号 funcname OUT text 函数名 lineno OUT integer 行号 query OUT text 断点内容 funcoid OUT oid 函数oid 父主题: DBE_PLDEBUGGER Schema
共100000条