云服务器内容精选

  • PG_USER PG_USER视图提供了访问数据库用户的信息,默认只有初始化用户和具有sysadmin属性的用户可以查看,其余用户需要赋权后才可以查看。 表1 PG_USER字段 名称 类型 描述 usename name 用户名。 usesysid oid 此用户的ID。 usecreatedb boolean 用户是否可以创建数据库。 t(true):表示是。 f(false):表示否。 usesuper boolean 用户是否是拥有最高权限的初始系统管理员。 t(true):表示是。 f(false):表示否。 usecatupd boolean 用户是否可以直接更新系统表。只有usesysid=10的初始系统管理员拥有此权限。其他用户无法获得此权限。 t(true):表示是。 f(false):表示否。 userepl boolean 用户是否可以复制数据流。 t(true):表示是。 f(false):表示否。 passwd text 密文存储后的用户口令,始终为********。 valbegin timestamp with time zone 账户的有效开始时间;如果没有设置有效开始时间,则为NULL。 valuntil timestamp with time zone 账户的有效结束时间;如果没有设置有效结束时间,则为NULL。 respool name 用户所在的资源池。 parent oid 父用户OID。 spacelimit text 永久表存储空间限额。 useconfig text[] 运行时配置参数的会话缺省。 nodegroup name 用户关联的逻辑集群(当前特性是实验室特性,使用时请联系华为工程师提供技术支持)名称,如果该用户没有管理逻辑集群,则该字段为空。 tempspacelimit text 临时表存储空间限额。 spillspacelimit text 算子落盘空间限额。 usemonitoradmin boolean 用户是否是监控管理员。 t(true):表示是。 f(false):表示否。 useoperatoradmin boolean 用户是否是运维管理员。 t(true):表示是。 f(false):表示否。 usepolicyadmin boolean 用户是否是安全策略管理员。 t(true):表示是。 f(false):表示否。 父主题: 系统视图
  • PG_USER PG_USER视图提供了访问数据库用户的信息,默认只有初始化用户和具有sysadmin属性的用户可以查看,其余用户需要赋权后才可以查看。 表1 PG_USER字段 名称 类型 描述 usename name 用户名。 usesysid oid 此用户的ID。 usecreatedb boolean 用户是否可以创建数据库。 usesuper boolean 用户是否是拥有最高权限的初始系统管理员。 usecatupd boolean 用户是否可以直接更新系统表。只有usesysid=10的初始系统管理员拥有此权限。其他用户无法获得此权限。 userepl boolean 用户是否可以复制数据流。 passwd text 密文存储后的用户口令,始终为********。 valbegin timestamp with time zone 账户的有效开始时间;如果没有设置有效开始时间,则为NULL。 valuntil timestamp with time zone 账户的有效结束时间;如果没有设置有效结束时间,则为NULL。 respool name 用户所在的资源池。 parent oid 父用户OID。 spacelimit text 永久表存储空间限额。 tempspacelimit text 临时表存储空间限额。 spillspacelimit text 算子落盘空间限额。 useconfig text[] 运行时配置参数的会话缺省。 nodegroup name 用户关联的逻辑数据库名称,如果该用户没有管理逻辑数据库,则该字段为空。 usemonitoradmin boolean 用户是否是监控管理员。 t(true):表示是。 f(false):表示否。 useoperatoradmin boolean 用户是否是运维管理员。 t(true):表示是。 f(false):表示否。 usepolicyadmin boolean 用户是否是安全策略管理员。 t(true):表示是。 f(false):表示否。 父主题: 系统视图
  • PGXC_RESPOOL_RESOURCE_INFO PGXC_RESPOOL_RESOURCE_INFO视图显示所有实例上资源池实时监控信息。 DN上仅显示当前DN所属逻辑集群的资源池监控信息。 从8.2.0集群版本开始,新增了内存负反馈机制功能,CCN节点会根据DN节点的实际内存使用情况辅助反向调节语句的估算内存统计值,缓解语句估算内存高估场景,当CCN节点触发通过负反馈机制来减少估算内存统计值来增发作业时,由于CCN节点更新了语句缩减后的估算内存统计值,而CN节点还保留了原先的估算内存统计值,会导致资源池监控视图中的估算内存超过资源池的上限。 语句的算子分为重内存算子和非重内存算子,对于语句的内存管控是重内存算子,非重内存算子的内存开销较小;由于非重内存算子的内存开销、线程初始化的开销、表达式的开销等这些内存不做管控,会导致资源池的used_mem会在一定程度上超过mem_limit值。 表1 PGXC_RESPOOL_RESOURCE_INFO字段 名称 类型 描述 nodename name 实例名称,包含CN和DN。 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 (DWS)可用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上资源池网络发送速率的累积和。 父主题: 系统视图
  • 系统表和系统视图概述 系统表是GaussDB(DWS)存放结构元数据,是GaussDB(DWS)数据库系统运行控制信息的来源,也是数据库系统的核心组成部分。系统表包含集群安装信息以及GaussDB(DWS)上运行的各种查询和进程的信息。可以通过查询系统表来收集有关数据库的信息。 系统视图提供了查询系统表和访问数据库内部状态的方法。当用户对数据库中的一张或者多张表的某些字段的组合感兴趣,而又不想每次键入这些查询时,用户就可以定义一个视图来解决这个问题。视图与基本表不同,不是物理上实际存在的,是一个虚表。数据库中仅存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。若基本表中的数据发生变化,从视图中查询出的数据也随之改变。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中用户感兴趣的数据及变化。视图每次被引用的时候都会运行一次。 三权分立下,非管理员无权查看系统表和视图。非三权分立下,系统表和系统视图要么只对管理员可见,要么对所有用户可见。下面的系统表和视图有些标识了需要管理员权限,这些系统表和视图只有管理员可以查询。 禁止对系统表或系统视图进行增删改等操作,手动对系统表或系统视图的修改或破坏可能会导致系统信息不一致,造成系统控制异常甚至出现集群不可用的情况。 系统表不支持toast,无法跨页存储,一个页面大小为8K,系统表各个字段长度需小于8K。 父主题: 系统表和系统视图
  • DBA_PROCEDURES DBA_PROCEDURES视图存储关于数据库下的所有存储过程或函数信息。需要有系统管理员权限才可以访问。 名称 类型 描述 owner character varying(64) 存储过程或函数的所有者。 object_name character varying(64) 存储过程或函数名称。 argument_number smallint 存储过程入参个数。 父主题: 系统视图
  • GLOBAL_STAT_DATABASE GLOBAL_STAT_DATABASE视图显示集群中所有节点上数据库的状态和统计信息之和。 CN上查询GLOBAL_STAT_DATABASE视图,返回的结果除stats_reset字段(当前CN上的状态重置时间)之外,其余字段表示在集群内相关节点上的数值之和。需注意,因GLOBAL_STAT_DATABASE视图中各字段的逻辑含义不同,求和的范围也有所不同。 在DN上查询视图GLOBAL_STAT_DATABASE,所得结果与表1相同。 表1 GLOBAL_STAT_DATABASE字段 名称 类型 描述 求和范围 datid oid 数据库OID。 - datname name 数据库名。 - numbackends integer 当前节点上连接到该数据库的后端数。 这是该视图中唯一一个反映目前状态值的列;所有列均返回自上次重置以来的累积值。 CN xact_commit bigint 当前节点上该数据库中已经提交的事务数。 CN xact_rollback bigint 当前节点上该数据库中已经回滚的事务数。 CN blks_read bigint 当前节点上该数据库中读取的磁盘块的数量。 DN blks_hit bigint 当前节点上高速缓存中发现的磁盘块的个数,即缓存中命中的块数(只包括GaussDB(DWS)缓冲区高速缓存,不包括文件系统的缓存)。 DN tup_returned bigint 当前节点上该数据库查询返回的行数。 DN tup_fetched bigint 当前节点上该数据库查询抓取的行数。 DN tup_inserted bigint 当前节点上该数据库插入的行数。 DN tup_updated bigint 当前节点上该数据库更新的行数。 DN tup_deleted bigint 当前节点上该数据库删除的行数。 DN conflicts bigint 当前节点上由于数据库恢复冲突取消的查询数量(只在备用服务器上发生)。请参见PG_STAT_DATABASE_CONFLI CTS 获取更多信息。 CN和DN temp_files bigint 当前节点上该数据库创建的临时文件个数。计算所有临时文件,不论为什么创建临时文件(比如排序或者哈希),而且不考虑log_temp_files设置。 DN temp_bytes bigint 当前节点上该数据库写入临时文件的大小。计算所有临时文件,不论为什么创建临时文件,而且不考虑log_temp_files设置。 DN deadlocks bigint 当前节点上该数据库中发生的死锁数量。 CN和DN blk_read_time double precision 当前节点上该数据库后端读取数据文件块花费的时间,以毫秒计算。 DN blk_write_time double precision 当前节点上该数据库后端写入数据文件块花费的时间,以毫秒计算。 DN stats_reset timestamp with time zone 当前节点上该数据库统计重置的时间。 - 父主题: 系统视图
  • PG_TOTAL_MEMORY_DETAIL PG_TOTAL_MEMORY_DETAIL视图显示某个数据库节点内存使用情况。 表1 PG_TOTAL_MEMORY_DETAIL字段 名称 类型 描述 nodename text 节点名称。 memorytype text 内存的名称,包括以下几种: max_process_memory:GaussDB(DWS)集群实例所占用的内存大小。 process_used_memory:GaussDB(DWS)进程所使用的内存大小。 max_dynamic_memory:最大动态内存。 dynamic_used_memory:已使用的动态内存。 dynamic_peak_memory:内存的动态峰值。 dynamic_used_shrctx:最大动态共享内存上下文。 dynamic_peak_shrctx:共享内存上下文的动态峰值。 max_shared_memory:最大共享内存。 shared_used_memory:已使用的共享内存。 max_cstore_memory:列存所允许使用的最大内存。 cstore_used_memory:列存已使用的内存大小。 max_sctpcomm_memory:通信库所允许使用的最大内存。 sctpcomm_used_memory:通信库已使用的内存大小。 sctpcomm_peak_memory:通信库的内存峰值。 max_topsql_memory:TopSQL记录历史作业监控信息允许使用的最大内存。 topsql_used_memory:TopSQL记录历史作业监控信息已使用的内存大小。 topsql_peak_memory:TopSQL记录历史作业监控信息的内存峰值。 other_used_memory:其他已使用的内存大小。 gpu_max_dynamic_memory:GPU内存最大值。 gpu_dynamic_used_memory:当前GPU可用内存和当前临时GPU内存之和。 gpu_dynamic_peak_memory:GPU内存使用的最大内存。 pooler_conn_memory:pooler连接占用内存大小。 pooler_freeconn_memory:pooler空闲连接占用的内存大小。 storage_compress_memory:列存压缩和解压缩使用的内存大小。 udf_reserved_memory:为UDF Worker进程预留的内存大小。 mmap_used_memory:mmap使用的内存大小。 memorymbytes integer 内存使用的大小,单位MB。 父主题: 系统视图
  • 应用示例 查询指定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)
  • 应用示例 查询指定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)
  • 示例 查询OBS IO Scheduler在每个节点读请求相关的统计信息。 1 2 3 4 5 6 SELECT * FROM pgxc_obs_io_scheduler_stats WHERE io_type = 'r' ORDER BY node_name; node_name | io_type | current_bps | best_bps | waiting_request_num | mean_request_size | total_token_num | available_token_num | total_worker_num | idle_worker_num --------------+---------+-------------+----------+---------------------+-------------------+-----------------+---------------------+------------------+----------------- dn_6001_6002 | r | 26990 | 26990 | 0 | 215 | 18 | 16 | 12 | 10 dn_6003_6004 | r | 21475 | 21475 | 10 | 190 | 30 | 30 | 20 | 20 dn_6005_6006 | r | 12384 | 12384 | 36 | 133 | 30 | 27 | 20 | 17 查询结果显示,这是当前IO Scheduler在进行读取IO操作时的某个时刻统计信息的快照(snapshot),此时带宽处于上升阶段,current_bps与best_bps相等。以dn_6003_6004为例,可以观察到该DN当前队列中存在排队的请求,total_token_num与available_token_num相等,说明查询视图的时刻IO Scheduler还未开始处理这些请求。 等待一段时间后,再次发起查询。 SELECT * FROM pgxc_obs_io_scheduler_stats WHERE io_type = 'r' ORDER BY node_name; node_name | io_type | current_bps | best_bps | waiting_request_num | mean_request_size | total_token_num | available_token_num | total_worker_num | idle_worker_num --------------+---------+-------------+----------+---------------------+-------------------+-----------------+---------------------+------------------+----------------- dn_6001_6002 | r | 13228 | 26990 | 0 | 609 | 18 | 18 | 12 | 12 dn_6003_6004 | r | 15717 | 21475 | 0 | 622 | 30 | 30 | 20 | 20 dn_6005_6006 | r | 18041 | 21767 | 0 | 609 | 30 | 30 | 20 | 20 此时队列中已经没有了排队的请求,且available_token_num等于total_token_num,说明IO Scheduler已经处理完所有请求,且没有新的请求需要被处理;但观察到current_bps不为零,是因为统计bps的周期为3秒,此时显示的是3秒前的结果。 短暂间隔后再次查询结果如下,current_bps更新为0。 SELECT * FROM pgxc_obs_io_scheduler_stats WHERE io_type = 'r' ORDER BY node_name; node_name | io_type | current_bps | best_bps | waiting_request_num | mean_request_size | total_token_num | available_token_num | total_worker_num | idle_worker_num --------------+---------+-------------+----------+---------------------+-------------------+-----------------+---------------------+------------------+----------------- dn_6001_6002 | r | 0 | 26990 | 0 | 609 | 18 | 18 | 12 | 12 dn_6003_6004 | r | 0 | 21475 | 0 | 622 | 30 | 30 | 20 | 20 dn_6005_6006 | r | 0 | 21767 | 0 | 609 | 30 | 30 | 20 | 20
  • 工具函数示例 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, storage_type=USTORE, segment=off) + 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; + CREATE INDEX idx_range_a ON test_range_pt USING ubtree (a) LOCAL(PARTITION p1_a_idx, PARTITION p2_a_idx, PARTITION p3_a_idx, PARTITION p4_a_idx, PARTITION p5_a_idx) WITH (storage_type=USTORE) TABLESPACE pg_default; (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, storage_type=USTORE, segment=off) + 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; + CREATE INDEX idx_range_a ON test_range_pt USING ubtree (a) LOCAL(PARTITION p1_a_idx, PARTITION p2_a_idx, PARTITION p3_a_idx, PARTITION p4_a_idx, PARTITION p5_a_idx) WITH (storage_type=USTORE) TABLESPACE pg_default; (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)
  • 系统表和系统视图概述 系统表是GaussDB存放结构元数据的地方,它是 GaussDB数据库 系统运行控制信息的来源,是数据库系统的核心组成部分。 系统视图提供了查询系统表和访问数据库内部状态的方法。 系统表和系统视图要么只对管理员可见,要么对所有用户可见。下面的系统表和视图有些标识了需要管理员权限,这些系统表和视图只有管理员可以查询。 用户可以删除后重新创建这些表、增加列、插入和更新数值,但是用户修改系统表会导致系统信息的不一致,从而导致系统控制紊乱。正常情况下不应该由用户手工修改系统表或系统视图,或者手工重命名系统表或系统视图所在的模式,而是由SQL语句关联的系统表操作自动维护系统表信息。 不建议用户修改系统表和系统视图的权限。 用户应该禁止对系统表进行增删改等操作,人为对系统表的修改或破坏可能会导致系统各种异常情况甚至数据库不可用。 系统表和系统视图中的字段类型详见数据类型章节介绍。 对于ADM类视图,由于访问到的对象是数据库下所有的该类型的对象,考虑对ADM类视图进行统一权限管理,默认只有系统管理员有权限访问该类型视图,部分ADM类的视图数据来自基表中公开、非敏感的字段;对于DB类视图,查询到的是数据库内当前用户有权限访问的对象,普通用户即可访问该类视图;对于MY类视图,查询到的是当前用户所属的对象,普通用户即可访问该类视图。 父主题: 系统表和系统视图