云服务器内容精选

  • 工具函数示例 pg_get_tabledef获取分区表的定义,入参可以为表的oid或者表名。 SELECT pg_get_tabledef('test_range_pt'); pg_get_tabledef -------------------------------------------------------------------- SET search_path = public; + CREATE TABLE test_range_pt ( + a integer, + b integer, + c integer + ) + WITH (orientation=row, compression=no) + PARTITION BY RANGE (a) + ( + PARTITION p1 VALUES LESS THAN (2000) TABLESPACE pg_default, + PARTITION p2 VALUES LESS THAN (3000) TABLESPACE pg_default, + PARTITION p3 VALUES LESS THAN (4000) TABLESPACE pg_default, + PARTITION p4 VALUES LESS THAN (5000) TABLESPACE pg_default, + PARTITION p5 VALUES LESS THAN (MAXVALUE) TABLESPACE pg_default+ ) + ENABLE ROW MOVEMENT; (1 row) pg_stat_get_partition_tuples_hot_updated返回给定分区id的分区热更新元组数的统计。 在分区p1中插入10条数据并更新,统计分区p1的热更新元组数。 INSERT INTO test_range_pt VALUES(generate_series(1,10),1,1); INSERT 0 10 SELECT pg_stat_get_partition_tuples_hot_updated(49294); pg_stat_get_partition_tuples_hot_updated ------------------------------------------ 0 (1 row) UPDATE test_range_pt SET b = 2; UPDATE 10 SELECT pg_stat_get_partition_tuples_hot_updated(49294); pg_stat_get_partition_tuples_hot_updated ------------------------------------------ 10 (1 row)
  • 前置建表相关信息 前置建表: CREATE TABLE test_range_pt (a INT, b INT, c INT) PARTITION BY RANGE (a) ( PARTITION p1 VALUES LESS THAN (2000), PARTITION p2 VALUES LESS THAN (3000), PARTITION p3 VALUES LESS THAN (4000), PARTITION p4 VALUES LESS THAN (5000), PARTITION p5 VALUES LESS THAN (MAXVALUE) )ENABLE ROW MOVEMENT; 查看分区表oid SELECT oid FROM pg_class WHERE relname = 'test_range_pt'; oid ------- 49290 (1 row) 查看分区信息 SELECT oid,relname,parttype,parentid,boundaries FROM pg_partition WHERE parentid = 49290; oid | relname | parttype | parentid | boundaries -------+---------------+----------+----------+------------ 49293 | test_range_pt | r | 49290 | 49294 | p1 | p | 49290 | {2000} 49295 | p2 | p | 49290 | {3000} 49296 | p3 | p | 49290 | {4000} 49297 | p4 | p | 49290 | {5000} 49298 | p5 | p | 49290 | {NULL} (6 rows) 创建索引 CREATE INDEX idx_range_a ON test_range_pt(a) LOCAL; CREATE INDEX --查看分区索引oid SELECT oid FROM pg_class WHERE relname = 'idx_range_a'; oid ------- 90250 (1 row) 查看索引分区信息 SELECT oid,relname,parttype,parentid,boundaries,indextblid FROM pg_partition WHERE parentid = 90250; oid | relname | parttype | parentid | boundaries | indextblid -------+----------+----------+----------+------------+------------ 90255 | p5_a_idx | x | 90250 | | 49298 90254 | p4_a_idx | x | 90250 | | 49297 90253 | p3_a_idx | x | 90250 | | 49296 90252 | p2_a_idx | x | 90250 | | 49295 90251 | p1_a_idx | x | 90250 | | 49294 (5 rows)
  • 工具函数示例 pg_get_tabledef获取分区表的定义,入参可以为表的oid或者表名。 SELECT pg_get_tabledef('test_range_pt'); pg_get_tabledef -------------------------------------------------------------------- SET search_path = public; + CREATE TABLE test_range_pt ( + a integer, + b integer, + c integer + ) + WITH (orientation=row, compression=no) + PARTITION BY RANGE (a) + ( + PARTITION p1 VALUES LESS THAN (2000) TABLESPACE pg_default, + PARTITION p2 VALUES LESS THAN (3000) TABLESPACE pg_default, + PARTITION p3 VALUES LESS THAN (4000) TABLESPACE pg_default, + PARTITION p4 VALUES LESS THAN (5000) TABLESPACE pg_default, + PARTITION p5 VALUES LESS THAN (MAXVALUE) TABLESPACE pg_default+ ) + ENABLE ROW MOVEMENT; (1 row) pg_stat_get_partition_tuples_hot_updated返回给定分区id的分区热更新元组数的统计。 在分区p1中插入10条数据并更新,统计分区p1的热更新元组数。 INSERT INTO test_range_pt VALUES(generate_series(1,10),1,1); INSERT 0 10 SELECT pg_stat_get_partition_tuples_hot_updated(49294); pg_stat_get_partition_tuples_hot_updated ------------------------------------------ 0 (1 row) UPDATE test_range_pt SET b = 2; UPDATE 10 SELECT pg_stat_get_partition_tuples_hot_updated(49294); pg_stat_get_partition_tuples_hot_updated ------------------------------------------ 10 (1 row)
  • 前置建表相关信息 前置建表: CREATE TABLE test_range_pt (a INT, b INT, c INT) PARTITION BY RANGE (a) ( PARTITION p1 VALUES LESS THAN (2000), PARTITION p2 VALUES LESS THAN (3000), partition p3 VALUES LESS THAN (4000), partition p4 VALUES LESS THAN (5000), partition p5 VALUES LESS THAN (MAXVALUE) )ENABLE ROW MOVEMENT; 查看分区表oid SELECT oid FROM pg_class WHERE relname = 'test_range_pt'; oid ------- 49290 (1 row) 查看分区信息 SELECT oid,relname,parttype,parentid,boundaries FROM pg_partition WHERE parentid = 49290; oid | relname | parttype | parentid | boundaries -------+---------------+----------+----------+------------ 49293 | test_range_pt | r | 49290 | 49294 | p1 | p | 49290 | {2000} 49295 | p2 | p | 49290 | {3000} 49296 | p3 | p | 49290 | {4000} 49297 | p4 | p | 49290 | {5000} 49298 | p5 | p | 49290 | {NULL} (6 rows) 创建索引 CREATE INDEX idx_range_a ON test_range_pt(a) LOCAL; CREATE INDEX --查看分区索引oid SELECT oid FROM pg_class WHERE relname = 'idx_range_a'; oid ------- 90250 (1 row) 查看索引分区信息 SELECT oid,relname,parttype,parentid,boundaries,indextblid FROM pg_partition WHERE parentid = 90250; oid | relname | parttype | parentid | boundaries | indextblid -------+----------+----------+----------+------------+------------ 90255 | p5_a_idx | x | 90250 | | 49298 90254 | p4_a_idx | x | 90250 | | 49297 90253 | p3_a_idx | x | 90250 | | 49296 90252 | p2_a_idx | x | 90250 | | 49295 90251 | p1_a_idx | x | 90250 | | 49294 (5 rows)
  • PG_ROLES PG_ROLES视图提供访问数据库角色的相关信息。 表1 PG_ROLES字段 名称 类型 引用 描述 rolname name - 角色名。 rolsuper boolean - 该角色是否是拥有最高权限的初始系统管理员。 rolinherit boolean - 该角色是否继承角色的权限。 rolcreaterole boolean - 该角色是否可以创建其他的角色。 rolcreatedb boolean - 该角色是否可以创建数据库。 rolcatupdate boolean - 该角色是否可以直接更新系统表。只有usesysid=10的初始系统管理员拥有此权限。其他用户无法获得此权限。 rolcanlogin boolean - 该角色是否可以登录数据库。 rolreplication boolean - 该角色是否可以复制。 rolauditadmin boolean - 该角色是否为审计管理员。 rolsystemadmin boolean - 该角色是否为系统管理员。 rolconnlimit integer - 对于可以登录的角色,rolconnlimit限制了该角色允许发起的最大并发连接数。 -1表示无限制。 rolpassword text - 不是口令,总是********。 rolvalidbegin timestamp with time zone - 账户的有效开始时间;如果没有设置有效开始时间,则为NULL。 rolvaliduntil timestamp with time zone - 账户的有效结束时间;如果没有设置有效结束时间,则为NULL。 rolrespool name - 用户所能够使用的resource pool。 rolparentid oid PG_AUTHID.rolparentid 用户所在组用户的OID。 roltabspace text - 用户永久表存储空间限额。 roltempspace text - 用户临时表存储空间限额。 rolspillspace text - 用户算子落盘空间限额。 rolconfig text[] - 运行时配置变量的会话缺省。 oid oid PG_AUTHID.oid 角色的ID。 roluseft boolean PG_AUTHID.roluseft 角色是否可以操作外表。 nodegroup name - 角色所关联的逻辑集群名字,如果没有关联逻辑集群,该值为空。 父主题: 系统视图
  • PG_ROLES PG_ROLES视图提供访问数据库角色的相关信息。 表1 PG_ROLES字段 名称 类型 引用 描述 rolname name - 角色名。 rolsuper boolean - 该角色是否是拥有最高权限的初始系统管理员。 rolinherit boolean - 该角色是否继承角色的权限。 rolcreaterole boolean - 该角色是否可以创建其他的角色。 rolcreatedb boolean - 该角色是否可以创建数据库。 rolcatupdate boolean - 该角色是否可以直接更新系统表。只有usesysid=10的初始系统管理员拥有此权限。其他用户无法获得此权限。 rolcanlogin boolean - 该角色是否可以登录数据库。 rolreplication boolean - 该角色是否可以复制。 rolauditadmin boolean - 该角色是否为审计管理员。 rolsystemadmin boolean - 该角色是否为系统管理员。 rolconnlimit integer - 对于可以登录的角色,rolconnlimit限制了该角色允许发起的最大并发连接数。 -1表示无限制。 rolpassword text - 不是口令,总是********。 rolvalidbegin timestamp with time zone - 账户的有效开始时间;如果没有设置有效开始时间,则为NULL。 rolvaliduntil timestamp with time zone - 账户的有效结束时间;如果没有设置有效结束时间,则为NULL。 rolrespool name - 用户所能够使用的resource pool。 rolparentid oid PG_AUTHID.rolparentid 用户所在组用户的OID。 roltabspace text - 用户永久表存储空间限额。 roltempspace text - 用户临时表存储空间限额。 rolspillspace text - 用户算子落盘空间限额。 rolconfig text[] - 运行时配置变量的会话缺省。 oid oid PG_AUTHID.oid 角色的ID。 roluseft boolean PG_AUTHID.roluseft 角色是否可以操作外表。 nodegroup name - 角色所关联的逻辑集群名字,如果没有关联逻辑集群,该值为空。 父主题: 系统视图
  • PG_LOCKS PG_LOCKS视图存储各打开事务所持有的锁信息。 表1 PG_LOCKS字段 名称 类型 引用 描述 locktype text - 被锁定对象的类型:relation,extend,page,tuple,transactionid,virtualxid,object,userlock,advisory。 database oid PG_DATABASE.oid 被锁定对象所在数据库的OID。 如果被锁定的对象是共享对象,则OID为0。 如果是一个事务ID,则为NULL。 relation oid PG_CLASS.oid 被锁定对象关系的OID,如果锁定的对象不是关系,也不是关系的一部分,则为NULL。 page integer - 关系内部的页面编号,如果对象不是关系页或者不是行页,则为NULL。 tuple smallint - 页面里边的行编号,如果对象不是行,则为NULL。 virtualxid text - 事务的虚拟ID,如果对象不是一个虚拟事务ID,则为NULL。 transactionid xid - 事务的ID,如果对象不是一个事务ID,则为NULL。 classid oid PG_CLASS.oid 包含该对象的系统表的OID,如果对象不是普通的数据库对象,则为NULL。 objid oid - 对象在其系统表内的OID,如果对象不是普通数据库对象,则为NULL。 objsubid smallint - 对于表的某个字段对应为字段编号;对于其他对象类型,该字段为0;如果该对象不是普通数据库对象,则为NULL。 virtualtransaction text - 持有此锁或者在等待此锁的事务的虚拟ID。 pid bigint - 持有此锁或者等待此锁的服务器线程的逻辑ID。如果锁被一个预备事务持有,则为NULL。 mode text - 此线程持有的或者是期望持有的锁模式。更多有关锁模式的内容请参见LOCK。 granted boolean - 如果锁是持有锁,则为TRUE。 如果锁是等待锁,则为FALSE。 fastpath boolean - 如果通过fast-path获得锁,则为TRUE;如果通过主锁表获得,则为FALSE。 父主题: 系统视图
  • 应用示例 查询指定schema下的所有表字段信息: 1 2 3 4 5 6 7 8 9 10 11 12 SELECt * FROM DBA_TAB_COLUMNS WHERE schema = 'public'; owner | table_name | column_name | data_type | column_id | data_length | comments | avg_col_len | nullable | data_precision | data_scale | char_length | schema | kind ---------+------------+-------------+-----------+-----------+-------------+----------+-------------+----------+----------------+------------+-------------+--------+------- dbadmin | t_customer | id | int4 | 1 | 4 | 主键 | | n | | 0 | 0 | public | table dbadmin | student | sschool | varchar | 4 | 10 | | | n | | 0 | 10 | public | table dbadmin | student | ssex | varchar | 3 | 10 | | | n | | 0 | 10 | public | table dbadmin | student | sname | varchar | 2 | 10 | | | n | | 0 | 10 | public | table dbadmin | student | sid | varchar | 1 | 10 | | | n | | 0 | 10 | public | table dbadmin | t_customer | email | varchar | 4 | 32 | email | | n | | 0 | 32 | public | table dbadmin | t_customer | gender | varchar | 3 | 10 | 性别 | | n | | 0 | 10 | public | table dbadmin | t_customer | cust_name | varchar | 2 | 32 | 名字 | | n | | 0 | 32 | public | table (8 rows)
  • PGXC_VARIABLE_INFO PGXC_VARIABLE_INFO视图用于查询集群中所有节点的xid、oid的状态。 表1 PGXC_VARIABLE_INFO字段 名称 类型 描述 node_name text 节点名称。 nextOid oid 该节点下一次生成的OID。 nextXid xid 该节点下一次生成的事务号。 oldestXid xid 该节点最早的事务号。 xidVacLimit xid 强制autovacuum的临界点。 oldestXidDB oid 该节点datafrozenxid最小的数据库OID。 lastExtendCSNLogpage integer 最后一次扩展csnlog的页面号。 startExtendCSNLogpage integer csnlog扩展的起始页面号。 nextCommitSeqNo integer 该节点下次生成的csn号。 latestCompletedXid xid 该节点提交或者回滚后节点上的最新事务号。 startupMaxXid xid 该节点关机前的最后一个事务号。 父主题: 系统视图
  • PG_STAT_ALL_INDEXES PG_STAT_ALL_INDEXES视图显示当前数据库中所有访问特定索引的统计信息。 索引可以通过简单的索引扫描或“位图”索引扫描进行使用。位图扫描中几个索引的输出可以通过AND或者OR规则进行组合, 因此当使用位图扫描的时候,很难将独立堆行抓取与特定索引进行组合, 因此,一个位图扫描增加pg_stat_all_indexes.idx_tup_read使用索引计数,并且增加pg_stat_all_tables.idx_tup_fetch表计数,但不影响pg_stat_all_indexes.idx_tup_fetch。 表1 PG_STAT_ALL_INDEXES字段 名称 类型 描述 relid oid 索引的表的OID。 indexrelid oid 索引的OID。 schemaname name 索引中模式名。 relname name 索引的表名。 indexrelname name 索引名。 idx_scan bigint 索引上开始的索引扫描数。 idx_tup_read bigint 通过索引上扫描返回的索引项数。 idx_tup_fetch bigint 通过使用索引的简单索引扫描抓取的活表行数。 父主题: 系统视图
  • ADM_TAB_COMMENTS ADM_TAB_COMMENTS视图显示数据库下的所有表和视图的注释信息。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_TAB_COMMENTS字段 名称 类型 描述 owner character varying(64) 表或视图的所有者。 table_name character varying(64) 表或视图的名称。 comments text 注释。 schema character varying(64) 表所属的名称空间的名称。 父主题: 系统视图
  • ADM_DIRECTORIES ADM_DIRECTORIES显示数据库中的所有目录对象。默认只有系统管理员权限才可以访问此视图,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_DIRECTORIES字段 名称 类型 描述 owner oid 目录的所有者。 directory_name name 目录名称。 directory_path text 目录的操作系统路径名。 origin_con_id character varying(256) 暂不支持,值为NULL。 父主题: 系统视图
  • GS_STAT_ALL_PARTITIONS GS_STAT_ALL_PARTITIONS视图包含当前数据库中所有分区表每个分区的信息,每个分区各占一行,显示该分区访问情况的统计信息,此视图信息由gs_stat_get_all_partitions_stats()函数查询得到。 表1 GS_STAT_ALL_PARTITIONS字段 名称 类型 描述 partition_oid oid 分区的OID。 schemaname name 该分区所在表的模式名。 relname name 该分区所在表的表名。 partition_name name 该分区所在一级分区名。 sub_partition_name name 该分区所在二级分区名。分布式不支持二级分区,值为NULL。 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 该分区最后一次被清理的时间。 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守护线程分析的次数。 父主题: 系统视图
  • 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。 父主题: 系统视图
  • ADM_DEPENDENCIES ADM_DEPENDENCIES视图显示数据库中的类型、表、视图、存储过程、函数、触发器之间的依赖关系。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_DEPENDENCIES字段 名称 类型 描述 owner name 对象的所有者。 name name 对象的名称。 type character varying(18) 对象的类型。 referenced_owner name 被引用对象的所有者。 referenced_name name 被引用对象的名称。 referenced_type character varying(18) 被引用对象的类型。 referenced_link_name character varying(128) 暂不支持,值为NULL。 dependency_type character varying(4) 暂不支持,值为NULL。 父主题: 系统视图