华为云用户手册

  • DBA_TABLES DBA_TABLES视图存储关于数据库下的所有表信息。需要有系统管理员权限才可以访问。 名称 类型 描述 owner character varying(64) 表的所有者。 table_name character varying(64) 表名。 tablespace_name character varying(64) 表所在的表空间的名称。 status character varying(8) 当前记录是否有效。 temporary character(1) 是否为临时表。 Y表示是临时表。 N表示不是临时表。 dropped character varying 当前记录是否已删除。 YES表示已删除。 NO表示未删除。 num_rows numeric 表的估计行数。 父主题: 系统视图
  • 应用示例 查看pooler连接池信息: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 select database,user_name,node_name,in_use,count(*) from pg_pooler_status group by 1, 2, 3 ,4 order by 5 desc limit 50; database | user_name | node_name | in_use | count ----------+-----------+--------------+--------+------- mydbdemo | user3 | cn_5001 | f | 2 mydbdemo | user3 | dn_6005_6006 | t | 2 mydbdemo | user3 | dn_6001_6002 | t | 2 mydbdemo | user3 | dn_6003_6004 | f | 2 mydbdemo | user3 | dn_6003_6004 | t | 2 mydbdemo | user3 | dn_6005_6006 | f | 2 mydbdemo | user3 | dn_6001_6002 | f | 2 mydbdemo | user3 | cn_5002 | f | 2 gaussdb | user3 | dn_6003_6004 | f | 1 mydbdemo | user3 | cn_5001 | t | 1 music | user2 | dn_6003_6004 | f | 1 music | user2 | dn_6005_6006 | f | 1 gaussdb | user1 | dn_6005_6006 | f | 1 (13 rows)
  • PGXC_WLM_USER_RESOURCE_HISTORY PGXC_WLM_USER_RESOURCE_HISTORY视图显示所有用户在对应实例上资源消耗的历史信息。该视图仅8.2.0及以上集群版本支持。 表1 PGXC_WLM_USER_RESOURCE_HISTORY字段 名称 类型 描述 nodename name 实例名称,包含CN和DN。 username text 用户名。 timestamp timestamp with time zone 时间戳。 used_memory integer 正在使用的内存大小,单位为MB。 DN:显示当前DN上对应用户正在使用的内存大小。 CN:显示所有DN上对应用户正在使用的内存累加和。 total_memory integer 可以使用的内存大小,单位为MB。值为0表示未限制最大可用内存,其限制取决于数据库最大可用内存。 DN:显示当前DN上对应用户可以使用的内存大小。 CN:显示所有DN上对应用户可以使用的内存大小之和。 used_cpu double precision 正在使用的CPU核数(仅统计非默认资源池上复杂作业的CPU使用情况,且该值为相关控制组的CPU使用统计值)。 DN:显示当前DN上对应用户正在使用的CPU核数。 CN:显示所有DN上对应用户正在使用的CPU核数之和。 total_cpu integer 用户关联控制组的CPU核数总和。 DN:显示当前DN上对应用户能够使用的CPU核数。 CN:显示所有DN上对应用户能够使用的CPU核数之和。 used_space bigint 已使用的永久表存储空间大小,单位为KB。 DN:显示当前DN上对应用户已使用的永久表存储空间大小。 CN:显示所有DN上对应用户已使用的永久表存储空间大小之和。 total_space bigint 可使用的永久表存储空间大小,单位为KB,值为-1表示未限制永久表存储空间。 DN:显示当前DN上对应用户可使用的永久表存储空间大小。 CN:显示所有DN上对应用户可使用的永久表存储空间大小之和。 used_temp_space bigint 已使用的临时表存储空间大小,单位为KB。 DN:显示当前DN上对应用户已使用的临时表存储空间大小。 CN:显示所有DN上对应用户已使用的临时表存储空间大小之和。 total_temp_space bigint 可使用的临时表存储空间大小,单位为KB,值为-1表示未限制临时表存储空间。 DN:显示当前DN上对应用户可使用的临时表存储空间大小 CN:显示所有DN上对应用户可使用的临时表存储空间大小之和 used_spill_space bigint 已使用的算子落盘空间大小,单位为KB。 DN:显示当前DN上对应用户已使用的算子落盘空间大小。 CN:显示所有DN上对应用户已使用的算子落盘空间大小之和。 total_spill_space bigint 可使用的算子落盘空间大小,单位为KB,值为-1表示未限制算子落盘空间。 DN:显示当前DN上对应用户可使用的算子落盘空间大小。 CN:显示所有DN上对应用户可使用的算子落盘空间大小之和。 read_kbytes bigint CN:过去5秒内,该用户在所有DN上复杂作业read的字节总数,单位为KB。 DN:实例启动至当前时间为止,该用户复杂作业read的字节总数,单位为KB。 write_kbytes bigint CN:过去5秒内,该用户在所有DN上复杂作业write的字节总数,单位为KB。 DN:实例启动至当前时间为止,该用户复杂作业write的字节总数,单位为KB。 read_counts bigint CN:过去5秒内,该用户在所有DN上复杂作业read的次数之和。 DN:实例启动至当前时间为止,该用户复杂作业read的次数之和。 write_counts bigint CN:过去5秒内,该用户在所有DN上复杂作业write的次数之和。 DN:实例启动至当前时间为止,该用户复杂作业write的次数之和。 read_speed double precision CN:过去5秒内,该用户在单个DN上复杂作业read平均速率。单位为KB/s。 DN:过去5秒内,该用户在该DN上复杂作业read平均速率。单位为KB/s。 write_speed double precision CN:过去5秒内,该用户在单个DN上复杂作业write平均速率。单位为KB/s。 DN:过去5秒内,该用户在该DN上复杂作业write平均速率。单位为KB/s。 send_speed double precision CN:一个5s监控周期内,该用户在所有DN上网络发送平均速率之和。单位为KB/s。 DN:一个5s监控周期内,该用户在该DN上网络发送平均速率。单位为KB/s。 recv_speed double precision CN:一个5s监控周期内,该用户在所有DN上网络接收平均速率之和。单位为KB/s。 DN:一个5s监控周期内,该用户在该DN上网络接收平均速率。单位为KB/s。 父主题: 系统视图
  • GS_USER_MONITOR GS_USER_MONITOR视图显示所有用户作业运行信息及资源使用信息,仅支持CN上查询。该视图仅8.2.1.100及以上集群版本支持。 表1 GS_USER_MONITOR字段 名称 类型 描述 usename name 用户名称。 rpname name 用户关联的资源池名称。 nodegroup name 资源池所属逻辑集群的名称,默认集群显示“installation”。 session_count bigint 该用户发起的会话数量,包含IDLE和ACTIVE会话。 active_count bigint 该用户发起的活跃会话数量,即正在执行查询的会话数量。 global_wait bigint 该用户执行的所有作业中,因单CN上并发超max_active_statements引起排队的作业数。 fast_run bigint 该用户执行的所有作业中,正在资源池快车道运行的作业数。 fast_wait bigint 该用户执行的所有作业中,在资源池快车道排队的作业数。 slow_run bigint 该用户执行的所有作业中,正在资源池慢车道运行的作业数。 slow_wait bigint 该用户执行的所有作业中,在资源池慢车道排队的作业数。 used_mem bigint 用户在所有DN上已用内存的平均值,单位为MB。 estimate_mem bigint 用户正在运行的作业估算内存之和,单位为MB。 used_cpu double precision 用户在所有DN上使用CPU核数的平均值,单个节点上包含多个DN时,用户在单节点上占用的CPU核数需要乘以DN数。 read_speed bigint 用户在所有DN上逻辑IO读速率的平均值,单位为KB/s。 write_speed bigint 用户在所有DN上逻辑IO写速率的平均值,单位为KB/s。 send_speed bigint 用户在所有DN上网络发送速率的平均值,单位为KB/s。 recv_speed bigint 用户在所有DN上网络接收速率的平均值,单位为KB/s。 used_space bigint 用户永久表已使用的空间大小,单位为KB。 space_limit bigint 用户永久表可使用的空间大小上限,单位为KB。-1为不限制。 used_temp_space bigint 用户临时表已使用的空间大小,单位为KB。 temp_space_limit bigint 用户临时表可使用的空间大小上限,单位为KB。-1为不限制。 used_spill_space bigint 用户中间结果集落盘已使用的空间大小,单位为KB。 spill_space_limit bigint 用户中间结果集落盘可使用的空间大小上限,单位为KB。-1为不限制。 父主题: 系统视图
  • PGXC_GET_TABLE_SKEWNESS PGXC_GET_TABLE_SKEWNESS视图展示当前库中表的数据分布倾斜情况。需要有系统管理员权限或预置角色gs_role_read_all_stats权限才可以访问此视图。 表1 PGXC_GET_TABLE_SKEWNESS字段 名称 类型 描述 schemaname name 表所在的模式名。 tablename name 表名。 totalsize numeric 表的总大小,单位为Byte。 avgsize numeric(1000,0) 表大小平均值(totalsize/DN个数,该值为平均分布的理想情况下,表在各DN占用空间大小)。 maxratio numeric(10,3) 单DN表大小最大值占比(表在各DN占用空间的最大值/avgsize)。 minratio numeric(10,3) 单DN表大小最小值占比(表在各DN占用空间的最小值/avgsize)。 skewsize bigint 表分布倾斜值(单DN表大小最大值 - 单DN表大小最小值)。 skewratio numeric(10,3) 表分布倾斜率(skewsize/avgsize)。 skewstddev numeric(1000,0) 表分布标准方差(在表大小一定的情况下,该值越大表明表的整体分布情况越倾斜)。 父主题: 系统视图
  • PG_OPFAMILY PG_OPFAMILY系统表定义操作符族。 每个操作符族是操作符和相关支持例程的集合,这些例程实现了为特定索引访问方法指定的语义。此外,按照访问方法指定的某种方式,一个族内的操作符都是“兼容的”。操作符族允许跨数据类型操作符与索引一起使用,并可以推理使用访问方法语义相关内容。 表1 PG_OPFAMILY字段 名字 类型 引用 描述 oid oid - 行标识符(隐藏属性,必须明确选择才会显示)。 opfmethod oid PG_AM.oid 操作符族使用的索引方法。 opfname name - 操作符族的名称。 opfnamespace oid PG_NAMESPACE.oid 操作符族的命名空间。 opfowner oid PG_AUTHID.oid 操作符族的所有者。 定义一个操作符族的大多数信息不在PG_OPFAMILY,而是在相关的PG_AMOP,PG_AMPROC和PG_OPCLASS中。 父主题: 系统表
  • GS_RESPOOL_RESOURCE_INFO GS_RESPOOL_RESOURCE_INFO视图显示CN上所有资源池作业运行信息以及当前实例(CN/DN)所有资源池资源使用信息。 DN上仅显示当前DN所属逻辑集群的资源池监控信息。 表1 GS_RESPOOL_RESOURCE_INFO字段 名称 类型 描述 nodegroup name 资源池所属逻辑集群名称,默认集群显示“installation”。 rpname name 资源池名称。 cgroup name 资源池关联控制组名称。 ref_count int 资源池引用作业数,作业经过资源池不管是否管控都会计数,只在CN上有效。 fast_run int 资源池快车道运行作业数,只在CN上有效。 fast_wait int 资源池快车道排队作业数,只在CN上有效。 fast_limit int 资源池快车道作业并发限制,只在CN上有效。 slow_run int 资源池慢车道运行作业数,只在CN上有效。 slow_wait int 资源池慢车道排队作业数,只在CN上有效。 slow_limit int 资源池慢车道作业并发限制,只在CN上有效。 used_cpu double 资源池5s监控周期内使用CPU个数平均值,保留小数点后2位。 DN:显示当前DN上资源池使用的CPU个数。 CN:显示所有DN上资源池使用CPU的累积和。 cpu_limit int 资源池可用CPU的上限,CPU配额管控情况下为GaussDB可用CPU,CPU限额管控情况下为关联控制组CPU可用CPU。 DN:显示当前DN上资源池可用CPU上限。 CN:显示所有DN上资源池可用CPU上限的累积和。 used_mem int 资源池当前使用的内存大小,单位为MB。 DN:显示当前DN上资源池使用的内存大小。 CN:显示所有DN上资源池使用内存的累积和。 estimate_mem int 当前CN上,资源池运行作业的估算内存之和,只在CN上有效。 mem_limit int 资源池可用内存上限,单位为MB。 DN:显示当前DN上资源池可用内存上限。 CN:显示所有DN上资源池可用内存上限的累积和。 read_kbytes bigint 资源池5s监控周期内逻辑读字节数,单位为KB。 DN:显示当前DN上资源池逻辑读字节数。 CN:显示所有DN上资源池逻辑读字节的累积和。 write_kbytes bigint 资源池5s监控周期内逻辑写字节数,单位为KB。 DN:显示当前DN上资源池逻辑写字节数。 CN:显示所有DN上资源池逻辑写字节的累积和。 read_counts bigint 资源池5s监控周期内逻辑读次数。 DN:显示当前DN上资源池逻辑读次数。 CN:显示所有DN上资源池逻辑读次数的累积和。 write_counts bigint 资源池5s监控周期内逻辑写次数。 DN:显示当前DN上资源池逻辑写次数。 CN:显示所有DN上资源池逻辑写次数的累积和。 read_speed double 资源池5s监控周期内逻辑读速率的平均值,单位为KB/s。 DN:显示当前DN上资源池逻辑读速率。 CN:显示所有DN上资源池逻辑读速率的累积和。 write_speed double 资源池5s监控周期内逻辑写速率平均值,单位为KB/s。 DN:显示当前DN上资源池逻辑写速率。 CN:显示所有DN上资源池逻辑写速率的累积和。 send_speed double 资源池5s监控周期内网络发送速率平均值,单位为KB/s。 DN:显示当前DN上资源池网络发送速率。 CN:显示所有DN上资源池网络发送速率的累积和。 recv_speed double 资源池5s监控周期内网络接收速率平均值,单位为KB/s。 DN:显示当前DN上资源池网络接收速率。 CN:显示所有DN上资源池网络接收速率的累积和。 父主题: 系统视图
  • USER_IND_EXPRESSIONS USER_IND_EXPRESSIONS视图存储当前用户下基于函数的表达式索引的信息。 名称 类型 描述 index_owner character varying(64) 索引的所有者。 index_name character varying(64) 索引名。 table_owner character varying(64) 表的所有者。 table_name character varying(64) 表名。 column_expression text 定义列的基于函数的索引表达式。 column_position smallint 索引中列的位置。 父主题: 系统视图
  • ALL_OBJECTS ALL_OBJECTS视图记录了当前用户可访问的数据库对象。 表1 ALL_OBJECTS字段 名称 类型 描述 owner name 对象的所有者。 object_name name 对象的名称。 object_id oid 对象的OID。 object_type name 对象的类型。 namespace oid 对象所在的命名空间。 created timestamp with time zone 对象的创建时间。 last_ddl_time timestamp with time zone 对象的最后修改时间。 created和last_ddl_time支持的范围参见PG_OBJECT中的记录范围。 父主题: 系统视图
  • GS_WLM_OPERATOR_STATISTICS GS_WLM_OPERATOR_STATISTICS视图显示当前用户正在执行的作业的算子相关信息。 表1 GS_WLM_OPERATOR_STATISTICS的字段 名称 类型 描述 queryid bigint 语句执行使用的内部query_id。 pid bigint 后端线程ID。 plan_node_id integer 查询对应的执行计划的plan node id。 plan_node_name text 对应于plan_node_id的算子的名称,算子名称长度最大为127字符(不包含空格等格式化字符)。 start_time timestamp with time zone 该算子第一次开始执行的时间。 duration bigint 该算子从开始执行直到结束时总的执行时间,单位为毫秒。 status text 当前算子的执行状态,包括waiting、running和finished。 query_dop integer 当前算子执行时的并行度。 estimated_rows bigint 优化器估算的行数信息,若返回的预估行数超过int64_max时,显示为int64_max。 tuple_processed bigint 当前算子在所有DN上的返回的元素个数总和,若返回的预估行数超过int64_max时,显示为int64_max。 min_peak_memory integer 当前算子在所有DN上的最小内存峰值,单位为MB。 max_peak_memory integer 当前算子在所有DN上的最大内存峰值,单位为MB。 average_peak_memory integer 当前算子在所有DN上的平均内存峰值,单位为MB。 memory_skew_percent integer 当前算子在各DN间的内存使用倾斜率。 min_spill_size integer 若发生下盘,所有下盘DN的最小逻辑下盘数据量,单位为MB。默认为0。 max_spill_size integer 若发生下盘,所有下盘DN的最大逻辑下盘数据量,单位为MB。默认为0。 average_spill_size integer 若发生下盘,所有下盘DN的平均逻辑下盘数据量,单位为MB,默认为0。 spill_skew_percent integer 若发生下盘,DN间下盘倾斜率。 min_cpu_time bigint 该算子在所有DN上的最小执行时间,单位为毫秒。 max_cpu_time bigint 该算子在所有DN上的最大执行时间,单位为毫秒。 total_cpu_time bigint 该算子在所有DN上的总执行时间,单位为毫秒。 cpu_skew_percent integer DN间执行时间的倾斜率。 warning text 主要显示如下几类告警信息: Sort/SetOp/HashAgg/HashJoin spill Spill file size large than 256MB Broadcast size large than 100MB Early spill Spill times is greater than 3 Spill on memory adaptive Hash table conflict 父主题: 系统视图
  • PGXC_TOTAL_USER_RESOURCE_INFO PGXC_TOTAL_USER_RESOURCE_INFO视图显示所有实例上用户实时资源消耗信息。该视图仅8.2.0及以上集群版本支持。 表1 PGXC_TOTAL_USER_RESOURCE_INFO字段 名称 类型 描述 nodename name 实例名称,包含CN和DN。 username name 用户名。 used_memory integer 正在使用的内存大小,单位为MB。 DN:显示当前DN上对应用户正在使用的内存大小。 CN:显示所有DN上对应用户正在使用的内存累加和。 total_memory integer 可以使用的内存大小,单位为MB。值为0表示未限制最大可用内存,其限制取决于数据库最大可用内存。 DN:显示当前DN上对应用户可以使用的内存大小。 CN:显示所有DN上对应用户可以使用的内存大小之和。 used_cpu double precision 正在使用的CPU核数(仅统计非默认资源池上复杂作业的CPU使用情况,且该值为相关控制组的CPU使用统计值)。 DN:显示当前DN上对应用户正在使用的CPU核数。 CN:显示所有DN上对应用户正在使用的CPU核数之和。 total_cpu integer 用户关联控制组的CPU核数总和。 DN:显示当前DN上对应用户能够使用的CPU核数。 CN:显示所有DN上对应用户能够使用的CPU核数之和。 used_space bigint 已使用的永久表存储空间大小,单位为KB。 DN:显示当前DN上对应用户已使用的永久表存储空间大小。 CN:显示所有DN上对应用户已使用的永久表存储空间大小之和。 total_space bigint 可使用的永久表存储空间大小,单位为KB,值为-1表示未限制永久表存储空间。 DN:显示当前DN上对应用户可使用的永久表存储空间大小。 CN:显示所有DN上对应用户可使用的永久表存储空间大小之和。 used_temp_space bigint 已使用的临时表存储空间大小,单位为KB。 DN:显示当前DN上对应用户已使用的临时表存储空间大小。 CN:显示所有DN上对应用户已使用的临时表存储空间大小之和。 total_temp_space bigint 可使用的临时表存储空间大小,单位为KB,值为-1表示未限制临时表存储空间。 DN:显示当前DN上对应用户可使用的临时表存储空间大小。 CN:显示所有DN上对应用户可使用的临时表存储空间大小之和。 used_spill_space bigint 已使用的算子落盘空间大小,单位为KB。 DN:显示当前DN上对应用户已使用的算子落盘空间大小 CN:显示所有DN上对应用户已使用的算子落盘空间大小之和 total_spill_space bigint 可使用的算子落盘空间大小,单位为KB,值为-1表示未限制算子落盘空间。 DN:显示当前DN上对应用户可使用的算子落盘空间大小。 CN:显示所有DN上对应用户可使用的算子落盘空间大小之和。 read_kbytes bigint CN:过去5秒内,该用户在所有DN上逻辑读的字节总数。单位为KB。 DN:实例启动至当前时间为止,该用户逻辑读的字节总数。单位为KB。 write_kbytes bigint CN:过去5秒内,该用户在所有DN上逻辑写的字节总数。单位为KB。 DN:实例启动至当前时间为止,该用户逻辑写的字节总数。单位为KB。 read_counts bigint CN:过去5秒内,该用户在所有DN上逻辑读的次数之和。 DN:实例启动至当前时间为止,该用户逻辑读的次数之和。 write_counts bigint CN:过去5秒内,该用户在所有DN上逻辑写的次数之和。 DN:实例启动至当前时间为止,该用户逻辑写的次数之和。 read_speed double precision CN:过去5秒内,该用户在单个DN上逻辑读平均速率。单位为KB/s。 DN:过去5秒内,该用户在该DN上逻辑读平均速率。单位为KB/s。 write_speed double precision CN:过去5秒内,该用户在单个DN上逻辑写平均速率。单位为KB/s。 DN:过去5秒内,该用户在该DN上逻辑写平均速率。单位为KB/s。 send_speed double precision CN:过去5秒内,该用户在所有DN上网络发送平均速率之和。单位为KB/s。 DN:过去5秒内,该用户在该DN上网络发送平均速率。单位为KB/s。 recv_speed double precision CN:过去5秒内,该用户在所有DN上网络接收平均速率之和。单位为KB/s。 DN:过去5秒内,该用户在该DN上网络接收平均速率。单位为KB/s。 父主题: 系统视图
  • GS_VIEW_INVALID GS_VIEW_INVALID视图提供查询当前用户可见的所有不可用的视图。如果该视图依赖的基础表或函数或同义词存在异常,该视图validtype列显示为“invalid”。 表1 GS_VIEW_INVALID字段 名称 类型 描述 oid oid 视图OID。 schemaname name 视图空间名称。 viewname name 视图名称。 viewowner name 视图的所有者。 definition text 视图定义。 validtype text 视图有效性标识。 父主题: 系统视图
  • PV_SESSION_STAT PV_SESSION_STAT视图以会话线程或AutoVacuum线程为单位,统计会话状态信息。 表1 PV_SESSION_STAT字段 名称 类型 描述 sessid text 线程标识+线程启动时间。 statid integer 统计编号。 statname text 统计会话名称。 statunit text 统计会话单位。 value bigint 统计会话值。 父主题: 系统视图
  • EXISTS EXISTS函数可以判断数组下标是否存在。 用法如下: varray.EXISTS(index) 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 --演示在存储过程中对数组EXISTS函数的用法。 CREATE OR REPLACE PROCEDURE test_varray AS TYPE varray_type IS VARRAY(20) OF INT; v_varray varray_type; BEGIN v_varray := varray_type(1, 2, 3); IF v_varray.EXISTS(1) THEN DBMS_OUTPUT.PUT_LINE('v_varray.EXISTS(1)'); END IF; IF NOT v_varray.EXISTS(10) THEN DBMS_OUTPUT.PUT_LINE('NOT v_varray.EXISTS(10)'); END IF; END; / 执行结果: 1 2 3 call test_varray(); v_varray.EXISTS(1) NOT v_varray.EXISTS(10)
  • NEXT和PRIOR NEXT函数和PRIOR函数主要用于数组的循环遍历中,NEXT函数会根据入参index值,返回下一个数组元素的下标,若已经到达数组下标最大值则返回NULL。PRIOR函数会根据入参index值,返回上一个数组元素的下标,若已经到达数组下标最小值则返回NULL。 用法如下: varray.NEXT(index) varray.PRIOR(index) 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 --演示在存储过程中对数组NEXT和PRIOR函数的用法。 CREATE OR REPLACE PROCEDURE test_varray AS TYPE varray_type IS VARRAY(20) OF INT; v_varray varray_type; i int; BEGIN v_varray := varray_type(1, 2, 3); i := v_varray.COUNT; WHILE i IS NOT NULL LOOP DBMS_OUTPUT.PUT_LINE('test prior v_varray('||i||')=' || v_varray(i)); i := v_varray.PRIOR(i); END LOOP; i := 1; WHILE i IS NOT NULL LOOP DBMS_OUTPUT.PUT_LINE('test next v_varray('||i||')=' || v_varray(i)); i := v_varray.NEXT(i); END LOOP; END; / 执行结果: 1 2 3 4 5 6 7 call test_varray(); test prior v_varray(3)=3 test prior v_varray(2)=2 test prior v_varray(1)=1 test next v_varray(1)=1 test next v_varray(2)=2 test next v_varray(3)=3
  • TRIM TRIM函数可以从数组尾部删除指定数量的元素。 用法如下: varray.TRIM(size) 其中varray.TRIM这种无参的调用会默认入参为1,等价于varray.TRIM(1) 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 --演示在存储过程中对数组TRIM函数的用法。 CREATE OR REPLACE PROCEDURE test_varray AS TYPE varray_type IS VARRAY(20) OF INT; v_varray varray_type; BEGIN v_varray := varray_type(1, 2, 3, 4, 5); v_varray.trim(3); DBMS_OUTPUT.PUT_LINE('v_varray.count' || v_varray.count); v_varray.trim; DBMS_OUTPUT.PUT_LINE('v_varray.count:' || v_varray.count); END; / 执行结果: 1 2 3 call test_varray(); v_varray.count:2 v_varray.count:1
  • DELETE DELETE函数可以从数组删除数组中的所有元素。 用法如下: varray.DELETE或varray.DELETE() 示例: 1 2 3 4 5 6 7 8 9 10 11 --演示在存储过程中对数组DELETE函数的用法。 CREATE OR REPLACE PROCEDURE test_varray AS TYPE varray_type IS VARRAY(20) OF INT; v_varray varray_type; BEGIN v_varray := varray_type(1, 2, 3, 4, 5); v_varray.delete; DBMS_OUTPUT.PUT_LINE('v_varray.count:' || v_varray.count); END; / 执行结果: 1 2 call test_varray(); v_varray.count:0
  • LIMIT LIMIT函数可以返回数组的最大长度限制。 用法如下: varray.LIMIT或varray.LIMIT() 示例: 1 2 3 4 5 6 7 8 9 10 --演示在存储过程中对数组LIMIT函数的用法。 CREATE OR REPLACE PROCEDURE test_varray AS TYPE varray_type IS VARRAY(20) OF INT; v_varray varray_type; BEGIN v_varray := varray_type(1, 2, 3, 4, 5); DBMS_OUTPUT.PUT_LINE('v_varray.limit:' || v_varray.limit); END; / 执行结果: 1 2 call test_varray(); v_varray.limit:20
  • EXTEND EXTEND函数主要是为了兼容Oracle的两种用法。在GaussDB(DWS)中,数组会自动增长,EXTEND函数不是必须的。如果是新写的存储过程,完全没有必要使用EXTEND函数。 EXTEND函数可以对数组进行扩展,EXTEND有两种调用方式。 方式一: EXTEND包含一个整型入参,表示数组向后扩展size大小的长度,EXTEND后COUNT和LAST函数的值也会有相应的变化。 用法如下: varray.EXTEND(size) 其中varray.EXTEND这种无参的调用默认会向后扩展1位等价于varray.EXTEND(1) 方式二: EXTEND包含两个整型入参,第一个参数代表向后扩展size大小的长度,第二个参数表示扩展后的数组元素值和之下标为index的元素相同。 用法如下: varray.EXTEND(size, index) 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 --演示在存储过程中对数组EXTEND函数的用法。 CREATE OR REPLACE PROCEDURE test_varray AS TYPE varray_type IS VARRAY(20) OF INT; v_varray varray_type; BEGIN v_varray := varray_type(1, 2, 3); v_varray.extend(3); DBMS_OUTPUT.PUT_LINE('v_varray.count=' || v_varray.count); v_varray.extend(2,3); DBMS_OUTPUT.PUT_LINE('v_varray.count=' || v_varray.count); DBMS_OUTPUT.PUT_LINE('v_varray(7)=' || v_varray(7)); DBMS_OUTPUT.PUT_LINE('v_varray(8)=' || v_varray(7)); END; /
  • 数组类型的使用 在使用数组之前,需要自定义一个数组类型。 在存储过程中紧跟AS关键字后面定义数组类型。定义方法为: TYPE array_type IS VARRAY(size) OF data_type [NOT NULL]; 其中: array_type:要定义的数组类型名。 VARRAY:表示要定义的数组类型。 size:取值为正整数,表示可以容纳的成员的最大数量。 data_type:要创建的数组中成员的类型。 NOT NULL: 可选约束,可以约束该数组中的元素均不为NULL。 在GaussDB(DWS)中,数组会自动增长,访问越界会返回一个NULL,不会报错。越界写入数组会提示:Subscript outside of limit. 在存储过程中定义的数组类型,其作用域仅在该存储过程中。 建议选择上述定义方法的一种来自定义数组类型,当同时使用两种方法定义同名的数组类型时,GaussDB(DWS)会优先选择存储过程中定义的数组类型来声明数组变量。 GaussDB(DWS) 8.1.0之前版本, 由于数组可以自动增长,系统不会校验数组越界以及数组元素的长度限制。当前版本为了兼容Oracle的用法增加了相关约束。如果已经存在越界写入等场景,可通过在behavior_compat_options参数中配置varray_verification,来兼容之前不校验的行为。 示例:
  • ALL_TAB_COLUMNS ALL_TAB_COLUMNS视图存储了当前用户可访问的表和视图的列的描述信息。 表1 ALL_TAB_COLUMNS字段 名称 类型 描述 owner character varying(64) 表或视图的所有者。 table_name character varying(64) 表名或视图名。 column_name character varying(64) 列名。 data_type character varying(128) 列的数据类型。 column_id integer 对象创建或增加列时列的序号。 data_length integer 列的字节长度。 avg_col_len numeric 列的平均长度,单位为字节。 nullable bpchar 该列是否允许为空,对于主键约束和非空约束,该值为n。 data_precision integer 数据类型的精度,对于numeric数据类型有效,其他类型为NULL。 data_scale integer 小数点右边的位数,对于numeric数据类型有效,其他类型为0。 char_length numeric 列的长度,单位为字符。只对varchar,nvarchar2,bpchar,char类型有效。 schema character varying(64) 包含该表或视图的命名空间。 kind text 当前记录所属的种类,如果此列属于表,则此字段显示为table;如果此列属于视图,则此字段显示为view。 父主题: 系统视图
  • GS_OBS_LATENCY GS_OBS_LATENCY记录logtime之前10分钟内OBS的平均延迟信息,延迟数据是根据相关OBS的操作进行估算的结果。该视图仅8.2.0及以上集群版本支持。 表1 GS_OBS_LATENCY字段 名称 类型 描述 nodename text 集群节点。 hostname text 主机节点。 latency_ms double precision logtime之前10分钟内OBS的平均延迟,单位为微秒。 reqcount bigint logtime之前10分钟内OBS的请求次数。 logtime timestamp with time zone 记录延迟信息的时刻。 父主题: 系统视图
  • PG_LIFECYCLE_DATA_DISTRIBUTE PG_LIFECYCLE_DATA_DISTRIBUTE视图查询OBS多温表中冷热数据分布情况。 表1 PG_LIFECYCLE_DATA_DISTRIBUTE字段 名称 类型 描述 schemaname name 模式名。 tablename name 当前表名。 nodename name 节点名。 hotpartition text 该DN节点上的热分区。 coldpartition text 该DN节点上的冷分区。 switchablepartition text 该DN节点上的可切分区。 hotdatasize text 该DN节点上的热分区数据大小。 colddatasize text 该DN节点上的冷分区数据大小。 switchabledatasize text 该DN节点上的可切分区数据大小。 父主题: 系统视图
  • DBA_OBJECTS DBA_OBJECTS视图存储了数据库中所有数据库对象。需要有系统管理员权限才可以访问。 名称 类型 描述 owner name 对象的所有者。 object_name name 对象的名称。 object_id oid 对象的OID。 object_type name 对象的类型。 namespace oid 对象所在的命名空间。 created timestamp with time zone 对象的创建时间。 last_ddl_time timestamp with time zone 对象的最后修改时间。 created和last_ddl_time支持的范围参见PG_OBJECT中的记录范围。 父主题: 系统视图
  • PG_COMM_DELAY PG_COMM_DELAY视图展示单个DN的通信库时延状态。 表1 PG_COMM_DELAY字段 名称 类型 描述 node_name text 节点名称。 remote_name text 连接对端时延最大的节点名称。 remote_host text 连接对端IP地址。 stream_num integer 当前物理连接使用的stream逻辑连接数量。 min_delay integer 当前物理连接探测到的最小时延,单位为微秒。 average integer 当前物理连接探测时延的平均值,单位为微秒。 max_delay integer 当前物理连接探测到的最大时延,单位为微秒。 说明: 取值为-1,表示时延探测超时失败,请重新建立节点间连接后再执行查询。 父主题: 系统视图
  • GS_WLM_OPERATOR_INFO GS_WLM_OPERATOR_INFO系统表显示执行作业结束后的算子相关的记录。此数据是从内核中转储到系统表中的数据。当设置GUC参数enable_resource_record为on时,系统会定时将GS_WLM_OPERATOR_HISTORY中的记录导入此系统表,开启此功能会占用系统存储空间并对性能有一定影响,不建议用户使用。 此系统表的schema是dbms_om。 pg_catalog下存在GS_WLM_OPERATOR_INFO视图。 表1 GS_WLM_OPERATOR_INFO的字段 名称 类型 描述 nodename text 执行语句的CN实例名称。 queryid bigint 语句执行使用的内部query_id。 pid bigint 后端线程ID。 plan_node_id integer 查询对应的执行计划的plan node id。 plan_node_name text 对应于plan_node_id的算子的名称。 start_time timestamp with time zone 该算子处理第一条数据的开始时间。 duration bigint 该算子到结束时候总的执行时间,单位为毫秒。 query_dop integer 当前算子执行时的并行度。 estimated_rows bigint 优化器估算的行数信息。 tuple_processed bigint 当前算子返回的元素个数。 min_peak_memory integer 当前算子在所有DN上的最小内存峰值,单位为MB。 max_peak_memory integer 当前算子在所有DN上的最大内存峰值,单位为MB。 average_peak_memory integer 当前算子在所有DN上的平均内存峰值,单位为MB。 memory_skew_percent integer 当前算子在各DN间的内存使用倾斜率。 min_spill_size integer 若发生下盘,所有下盘DN的最小下盘数据量,单位为MB。默认为0。 max_spill_size integer 若发生下盘,所有下盘DN的最大下盘数据量,单位为MB。默认为0。 average_spill_size integer 若发生下盘,所有下盘DN的平均下盘数据量,单位为MB。默认为0。 spill_skew_percent integer 若发生下盘,DN间下盘倾斜率。 min_cpu_time bigint 该算子在所有DN上的最小执行时间,单位为毫秒。 max_cpu_time bigint 该算子在所有DN上的最大执行时间,单位为毫秒。 total_cpu_time bigint 该算子在所有DN上的总执行时间,单位为毫秒。 cpu_skew_percent integer DN间执行时间的倾斜率。 warning text 主要显示如下几类告警信息: Sort/SetOp/HashAgg/HashJoin spill Spill file size large than 256MB Broadcast size large than 100MB Early spill Spill times is greater than 3 Spill on memory adaptive Hash table conflict 父主题: 系统表
  • GS_QUERY_MONITOR GS_QUERY_MONITOR视图显示正在执行的查询运行/排队信息及资源使用信息,只显示排队和正在运行的作业,仅支持在CN上查询使用,仅显示主语句监控信息。该视图仅8.2.1.100及以上集群版本支持。 表1 GS_QUERY_MONITOR视图字段 名称 类型 描述 usename name 执行该查询的用户名称。 nodename name 执行该查询的CN名称。 nodegroup name 执行该查询的集群名称,默认集群显示“installation”。 rpname name 该查询关联的资源池名称。 priority name 查询当前优先级,包含Rush/High/Medium/Low四个优先级。 xact_start timestamp 查询所属事务的开启时间。 query_start timestamp 查询执行开始时间。 block_time bigint 作业累积已排队时间,存储过程、多语句可能多次排队。单位为秒。 duration bigint 作业已运行时间,不包含排队时间。单位为秒。 query_band text 显示作业标识,可通过GUC参数query_band设置,默认为空。 attribute text 作业属性: Simple:简单作业; Complicated:复杂作业。 作业进入资源池管控前无意义,只有进入或已完成资源池管控该字段才有意义。 lane text 作业排队/执行所处的资源池车道: fast:快车道; slow:慢车道。 作业进入资源池管控前无意义,只有进入或已完成资源池管控该字段才有意义。 status text 作业当前状态,包含pending/running两种可能状态。 queue text 作业排队信息: None:作业正在运行。 Global:作业在CN全局并发队列排队。 Respool:作业在资源池队列排队。 CCN:作业在CCN排队。 used_mem integer 作业在所有DN上内存峰值的最大值,单位为MB。 estimate_mem integer 作业估算内存,单位为MB。 used_cpu double precision 作业开始运行至今,占用CPU核数的平均值。 read_speed integer 作业当前在所有DN上逻辑IO读速率的平均值,单位为KB/s。 write_speed integer 作业当前在所有DN上逻辑IO写速率的平均值,单位为KB/s。 send_speed integer 作业开始运行至今,在所有DN上网络发送速率的平均值,单位为KB/s。 recv_speed integer 作业开始运行至今,在所有DN上网络接收速率的平均值,单位为KB/s。 dn_count bigint 执行该作业的DN数量。 stream_count bigint 作业在所有DN上stream线程的数量之和。 pid bigint 后端线程ID。 lwtid integer 后台线程的轻量级线程号。 query_id bigint 查询ID。 unique_sql_id bigint 归一化的Unique SQL ID。 query text 正在执行的查询。 父主题: 系统视图
  • 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 - 排序规则可用的编码,如果适用于任意编码为-1。 collcollate name - 排序规则对象的LC_COLLATE。 collctype name - 排序规则对象的LC_CTYPE。 父主题: 系统表
  • PGXC_GROUP PGXC_GROUP系统表存储节点组信息。 表1 PGXC_GROUP字段 名称 类型 描述 group_name name 节点组名称。 in_redistribution "char" 是否需要重分布。 n表示NodeGroup没有再进行重分布。 y表示NodeGroup是重分布过程中的源节点组。 t表示NodeGroup是重分布过程中的目的节点组。 group_members oidvector_extend 节点组的节点OID列表。 group_buckets text 分布数据桶的集合。 is_installation boolean 是否安装子集群。 group_acl aclitem[] 访问权限。 group_kind "char" node group类型。 i表示installation node group。 n表示普通非逻辑集群node group。 v表示逻辑集群node group。 e表示弹性集群。 父主题: 系统表
  • GS_VIEW_DEPENDENCY_PATH GS_VIEW_DEPENDENCY_PATH视图提供查询当前用户可见的所有视图的直接依赖关系。如果该视图依赖的基础表存在且各级视图依赖关系正常,通过该视图可以查询自基础表开始的各级视图的依赖关系。 表1 GS_VIEW_DEPENDENCY_PATH字段 名称 类型 描述 objschema name 视图空间名称。 objname name 视图名称。 refobjschema name 依赖对象的空间名称。 refobjname name 依赖对象的名称。 path text 依赖路径。 父主题: 系统视图
共100000条