华为云用户手册

  • GS_IMCV GS_IMCV系统表提供了所有IMCV表的元信息。 由于htap特性不支持分布式,enable_htap在分布式中不可以设置为on,所以查询该系统表时会显示为空。 表1 GS_IMCV字段 名称 类型 描述 reloid oid 表id。 relname name 表名。 dbname name 数据库名。 username name 用户名。 parentoid oid 父表id。 imcvispart boolean 是否是分区表。 imcvnattr smallint 需要加载的列数量。 imcvkey int2vector 加载的列数组。 priority smallint 加载优先级。 父主题: 其他系统表
  • 示例 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 --建表 gaussdb=# CREATE SCHEMA hr; gaussdb=# SET CURRENT_SCHEMA = hr; gaussdb=# CREATE TABLE staffs ( section_id INTEGER, salary INTEGER ); gaussdb=# INSERT INTO staffs VALUES (30, 10); gaussdb=# INSERT INTO staffs VALUES (30, 20); --创建存储过程proc_staffs gaussdb=# CREATE OR REPLACE PROCEDURE proc_staffs (vIM section NUMBER(6), salary_sum out NUMBER(8,2), staffs_count out INTEGER ) IS BEGIN SELECT sum(salary), count(*) INTO salary_sum, staffs_count FROM hr.staffs where section_id = section; END; / CREATE PROCEDURE --创建存储过程proc_return. gaussdb=# CREATE OR REPLACE PROCEDURE proc_return AS v_num NUMBER(8,2); v_sum INTEGER; BEGIN proc_staffs(30, v_sum, v_num); --调用语句 dbe_output.print_line(v_sum||'#'||v_num); RETURN; --返回语句 END; / CREATE PROCEDURE --调用存储过程proc_return. gaussdb=# CALL proc_return(); 30#2.00 proc_return ------------- (1 row) --清除存储过程 gaussdb=# DROP PROCEDURE proc_staffs; gaussdb=# DROP PROCEDURE proc_return; --创建函数func_return. gaussdb=# CREATE OR REPLACE FUNCTION func_return returns void language plpgsql AS $$ DECLARE v_num INTEGER := 1; BEGIN dbe_output.print_line(v_num); RETURN; --返回语句 END $$; CREATE FUNCTION -- 调用函数func_return gaussdb=# CALL func_return(); 1 func_return ------------- (1 row) -- 清除函数 gaussdb=# DROP FUNCTION func_return; -- 清除当前数据库模式 gaussdb=# DROP SCHEMA hr CASCADE;
  • PG_USER_MAPPINGS PG_USER_MAPPINGS视图显示用户映射的信息。所有用户均可查看。 表1 PG_USER_MAPPINGS字段 名称 类型 引用 描述 umid oid PG_USER_MAPPING.oid 用户映射的OID。 srvid oid PG_FOREIGN_SERVER.oid 包含这个映射的外部服务器的OID。 srvname name PG_FOREIGN_SERVER.srvname 外部服务器的名称。 umuser oid PG_AUTHID.oid 被映射的本地角色的OID,如果用户映射是公共的则为0。 usename name - 被映射的本地用户的名称。 umoptions text[] - 如果当前用户是外部服务器的所有者,则为用户映射指定选项, 使用“keyword=value”字符串,否则为NULL。 父主题: 用户和权限管理
  • Memory Statistics Memory Statistics指标名称及描述如表1所示。 表1 Memory Statistics报表主要内容 指标名称 描述 shared_used_memory 已经使用共享内存大小(MB)。 max_shared_memory 最大共享内存(MB)。 process_used_memory 进程已经使用内存(MB)。 max_process_memory 最大进程内存(MB)。 父主题: WDR报告信息介绍
  • 概述 在嵌入式SQL中进行C语言程序和SQL语句之间的数据传递不需要把数据粘贴到语句中,只需要在SQL语句里写上C语言变量的名称,前缀加一个冒号即可。示例如下: EXEC SQL INSERT INTO sometable VALUES (:v1, 'foo', :v2); 这个语句引用了两个C语言变量:v1和v2,并且使用一个普通的SQL字串文本,这表明一条SQL语句内并不限制只使用某一种数据。 父主题: 宿主变量
  • STATIO_USER_INDEXES STATIO_USER_INDEXES视图显示当前节点命名空间中所有用户关系表索引的I/O状态信息,如表1所示。 表1 STATIO_USER_INDEXES字段 名称 类型 描述 relid oid 索引的表的OID。 indexrelid oid 该索引的OID。 schemaname name 该索引的模式名。 relname name 该索引的表名。 indexrelname name 索引名称。 idx_blks_read bigint 从索引中读取的磁盘块数。 idx_blks_hit bigint 索引命中缓存数。 last_updated timestamp with time zone 视图中该对象监控数据最后一次更新的时间。 父主题: Cache/IO
  • 时间段输入 reltime的输入方式可以采用任何合法的时间段文本格式,包括数字形式(含负数和小数)及时间形式,其中时间形式的输入支持SQL标准格式、ISO-8601格式等。另外,文本输入需要加单引号。 时间段输入的详细信息请参考表6。 表6 时间段输入 输入示例 输出结果 描述 60 2 mons 采用数字表示时间段,默认单位是day,可以是小数或负数。特别的,负数时间段,在语义上,可以理解为“早于多久”。 31.25 1 mons 1 days 06:00:00 -365 -12 mons -5 days 1 years 1 mons 8 days 12:00:00 1 years 1 mons 8 days 12:00:00 采用POSTGRES格式表示时间段,可以正负混用,不区分大小写,输出结果为将输入时间段计算并转换得到的简化POSTGRES格式时间段。 -13 months -10 hours -1 years -25 days -04:00:00 -2 YEARS +5 MONTHS 10 DAYS -1 years -6 mons -25 days -06:00:00 P-1.1Y10M -3 mons -5 days -06:00:00 采用ISO-8601格式表示时间段,可以正负混用,不区分大小写,输出结果为将输入时间段计算并转换得到的简化POSTGRES格式时间段。 -12H -12:00:00 示例: 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 --创建表。 gaussdb=# CREATE TABLE reltime_type_tab(col1 character(30), col2 reltime); --插入数据。 gaussdb=# INSERT INTO reltime_type_tab VALUES ('90', '90'); gaussdb=# INSERT INTO reltime_type_tab VALUES ('-366', '-366'); gaussdb=# INSERT INTO reltime_type_tab VALUES ('1975.25', '1975.25'); gaussdb=# INSERT INTO reltime_type_tab VALUES ('-2 YEARS +5 MONTHS 10 DAYS', '-2 YEARS +5 MONTHS 10 DAYS'); gaussdb=# INSERT INTO reltime_type_tab VALUES ('30 DAYS 12:00:00', '30 DAYS 12:00:00'); gaussdb=# INSERT INTO reltime_type_tab VALUES ('P-1.1Y10M', 'P-1.1Y10M'); --查看数据。 gaussdb=# SELECT * FROM reltime_type_tab; col1 | col2 --------------------------------+------------------------------------- 90 | 3 mons -366 | -1 years -18:00:00 1975.25 | 5 years 4 mons 29 days -2 YEARS +5 MONTHS 10 DAYS | -1 years -6 mons -25 days -06:00:00 30 DAYS 12:00:00 | 1 mon 12:00:00 P-1.1Y10M | -3 mons -5 days -06:00:00 (6 rows) --删除表。 gaussdb=# DROP TABLE reltime_type_tab;
  • 日期输入 日期和时间的输入几乎可以是任何合理的格式,包括ISO-8601格式、SQL-兼容格式或者其它的格式。系统支持按照日、月、年的顺序自定义日期输入。如果把DateStyle参数设置为MDY就按照“月-日-年”解析,设置为DMY就按照“日-月-年”解析,设置为YMD就按照“年-月-日”解析。 日期的文本输入需要加单引号包围,语法如下: type [ ( p ) ] 'value' 可选的精度声明中的p是一个整数,表示在秒域中小数部分的位数。表2显示了date类型的输入格式。 表2 日期输入格式 例子 描述 1999-01-08 ISO 8601格式(建议格式),任何方式下都是1999年1月8日。 January 8, 1999 在任何datestyle输入模式下都无歧义。 1/8/1999 有歧义,在MDY模式下是1月8日,在DMY模式下是8月1日。 1/18/1999 MDY模式下是1月18日,其它模式下被拒绝。 01/02/03 MDY模式下的2003年1月2日。 DMY模式下的2003年2月1日。 YMD模式下的2001年2月3日。 1999-Jan-08 任何模式下都是1月8日。 Jan-08-1999 任何模式下都是1月8日。 08-Jan-1999 任何模式下都是1月8日。 99-Jan-08 YMD模式下是1月8日,否则错误。 08-Jan-99 1月8日,除了在YMD模式下是错误的之外。 Jan-08-99 1月8日,除了在YMD模式下是错误的之外。 19990108 ISO 8601格式,任何模式下都是1999年1月8日。 990108 ISO 8601格式,任何模式下都是1999年1月8日。 1999.008 年和年里的第几天。 J2451187 儒略日。 January 8, 99 BC 公元前99年。 示例: 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 32 33 34 35 36 37 --创建表。 gaussdb=# CREATE TABLE date_type_tab(coll date); --插入数据。 gaussdb=# INSERT INTO date_type_tab VALUES (date '12-10-2010'); --查看数据。 gaussdb=# SELECT * FROM date_type_tab; coll --------------------- 2010-12-10 (1 row) --查看日期格式。 gaussdb=# SHOW datestyle; DateStyle ----------- ISO, MDY (1 row) --设置日期格式。 gaussdb=# SET datestyle='YMD'; SET --插入数据。 gaussdb=# INSERT INTO date_type_tab VALUES(date '2010-12-11'); --查看数据。 gaussdb=# SELECT * FROM date_type_tab; coll --------------------- 2010-12-10 2010-12-11 (2 rows) --删除表。 gaussdb=# DROP TABLE date_type_tab;
  • SESSION_MEMORY_RUNTIME SESSION_MEMORY_RUNTIME视图显示当前用户执行复杂作业(正在运行)时的内存使用信息,如表1所示。 表1 SESSION_MEMORY_RUNTIME字段 名称 类型 描述 datid oid 连接后端的数据库OID。 usename name 登录到该后端的用户名。 pid bigint 后端线程ID。 start_time timestamp with time zone 语句执行的开始时间。如果是存储过程、函数、package,则查询的是第一个查询时间,不会随着存储过程内语句运行而改变。 min_peak_memory integer 语句在所有DN上的最小内存峰值大小,单位MB。 max_peak_memory integer 语句在所有DN上的最大内存峰值大小,单位MB。 spill_info text 语句在所有DN上的下盘信息: None:所有DN均未下盘。 All:所有DN均下盘。 [a:b]:数量为b个DN中有a个DN下盘。 query text 正在执行的语句。 node_group text 语句所属用户对应的node group。 top_mem_dn text mem使用量topN信息。 父主题: Session/Thread
  • PG_STAT_XACT_USER_TABLES PG_STAT_XACT_USER_TABLES视图显示命名空间中用户表的事务状态信息。具体字段信息如表1所示。 表1 PG_STAT_XACT_USER_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更新行数(比如没有更新所需的单独索引)。 父主题: 其他系统视图
  • PG_STATIO_SYS_TABLES PG_STATIO_SYS_TABLES视图显示命名空间中所有系统表的I/O状态信息。具体字段信息如表1所示。 表1 PG_STATIO_SYS_TABLES字段 名称 类型 描述 relid oid 表OID。 schemaname name 该表的模式名。 relname name 表名。 heap_blks_read bigint 从该表中读取的磁盘块数。 heap_blks_hit bigint 该表命中缓存数。 idx_blks_read bigint 从表中所有索引读取的磁盘块数。 idx_blks_hit bigint 表中所有索引命中缓存数。 toast_blks_read bigint 从该表的TOAST表读取的磁盘块数(如果存在)。 toast_blks_hit bigint 该表的TOAST表命中缓存数(如果存在)。 tidx_blks_read bigint 从该表的TOAST表索引读取的磁盘块数(如果存在)。 tidx_blks_hit bigint 该表的TOAST表索引命中缓存数(如果存在)。 父主题: 其他系统视图
  • 案例环境准备 为了便于规则的使用场景演示,需准备建表语句如下: SET client_min_messages = warning; SET CLIENT_ENCODING = 'UTF8'; --清理环境。 DROP SCHEMA IF EXISTS costbased_rule_test cascade; CREATE SCHEMA costbased_rule_test; SET current_schema = costbased_rule_test; SET enable_codegen = off; DROP TABLE IF EXISTS costbased_rule_test.ct1; DROP TABLE IF EXISTS costbased_rule_test.ct2; DROP TABLE IF EXISTS costbased_rule_test.ct3; DROP TABLE IF EXISTS costbased_rule_test.ct4; --创建测试表。 CREATE TABLE ct1 (a INT, b INT, c INT, d INT); CREATE TABLE ct2 (a INT, b INT, c INT, d INT); CREATE TABLE ct3 (a INT, b INT, c INT, d INT); CREATE TABLE ct4 (a INT, b INT, c INT, d INT); CREATE INDEX idx_ct1_b ON ct1(b); CREATE INDEX idx_ct2_c ON ct2(c); CREATE INDEX idx_ct3_c ON ct3(c); --插入数据。 INSERT INTO ct1 (a, b, c) VALUES (generate_series(1, 100), generate_series(200, 300), left(random()::int, 100)); INSERT INTO ct2 VALUES(1,2,3,4),(3,4,5,6); INSERT INTO ct3 (a, b, c, d) VALUES (generate_series(1, 10), generate_series(20, 30), left(random()::int, 10), left(random()::int, 10)); --更新统计信息。 ANALYZE ct1; ANALYZE ct2; ANALYZE ct3;
  • pl_get_global_trace_info 查看全部节点trace功能记录信息的接口函数。字段信息详见表1。 表1 pl_get_global_trace_info 参数 类型 描述 session_id bigint 本条SQL语句所属的会话ID。 node text 本条SQL语句所属的节点名称。 level text 本条SQL语句的等级。 database text 本条SQL语句所属数据库名。 func oid 本条SQL语句所属存储过程的OID。 source text 本条SQL语句。 plan text 本条SQL语句的执行计划。 time text 本条SQL语句的执行时间。 threshold float8 本条SQL语句的阈值(单位:毫秒)。 父主题: Trace Function
  • 示例 --创建一个兼容性为ORA的数据库。 gaussdb=# CREATE DATABASE ora_test_db DBCOMPATIBILITY 'ORA'; --切换数据库。 gaussdb=# \c ora_test_db --创建拥有系统管理员权限的用户。 ora_test_db=# CREATE USER user1 WITH SYSADMIN PASSWORD '********'; ora_test_db=# SET ROLE user1 PASSWORD '********'; --创建私有dblink,host也可以是IPv6地址。 ora_test_db=# CREATE DATABASE LINK private_dblink CONNECT TO 'user1' IDENTIFIED BY '********' USING (host '192.168.11.11',port '54399',dbname 'db01'); --删除私有dblink。 ora_test_db=# DROP DATABASE LINK private_dblink; --创建公共dblink,host也可以是IPv6地址。 ora_test_db=# CREATE PUBLIC DATABASE LINK public_dblink CONNECT TO 'user1' IDENTIFIED BY '********' USING (host '192.168.11.11',port '54399',dbname 'db01'); --删除公共dblink。 ora_test_db=# DROP PUBLIC DATABASE LINK public_dblink; --删除创建出的用户。 ora_test_db=# RESET ROLE; ora_test_db=# DROP USER user1; --切换回初始数据库,并删除测试数据库。请用真实的数据库名替换postgres。 ora_test_db=# \c postgres gaussdb=# DROP DATABASE ora_test_db;
  • MY_SEQUEN CES MY_SEQUENCES视图显示当前用户的序列信息。该视图同时存在于PG_CATA LOG 和SYS Schema下。具体字段信息如表1所示。 表1 MY_SEQUENCES字段 名称 类型 描述 sequence_owner name 序列所有者。 sequence_name name 序列的名称。 min_value int16 序列最小值。 max_value int16 序列最大值。 increment_by int16 序列的增量。 cycle_flag character(1) 表示序列是否是循环序列,取值为: Y:表示是循环序列。 N:表示不是循环序列。 order_flag character varying(1) 表示序列是否按照请求顺序发生,暂不支持,值为NULL。 cache_size int16 序列磁盘缓存大小。 last_number int16 该序列从GTM中一次性批量申请的最后一个值。 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。 父主题: 其他系统视图
  • MY_PART_TABLES MY_PART_TABLES视图显示当前用户下分区表的信息。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 MY_PART_TABLES字段 名称 类型 描述 table_owner character varying(64) 分区表的所有者名称。 table_name character varying(64) 分区表的名称。 partitioning_type text 分区表的分区策略。 说明: 当前分区表策略支持范围请参见CREATE TABLE PARTITION。 partition_count bigint 分区表的分区个数。 partitioning_key_count integer 分区表的分区键个数。 def_tablespace_name name 分区表的表空间名称。 schema character varying(64) 分区表的模式。 subpartitioning_type text 二级分区表的分区策略。如果分区表是一级分区表,则显示NONE。分布式不支持二级分区,值为NONE。 def_subpartition_count integer 默认创建二级分区的个数,二级分区表为1,一级分区表为0。分布式不支持二级分区,值为0。 subpartitioning_key_count integer 分区表二级分区键的个数。分布式不支持二级分区,值为0。 status character varying(8) 暂不支持,值为valid。 def_pct_free numeric 添加分区时使用的PCTFREE默认值。 def_pct_used numeric 暂不支持,值为NULL。 def_ini_trans numeric 添加分区时使用的INITRANS默认值。 def_max_trans numeric 添加分区时使用的MAXTRANS默认值。 def_initial_extent character varying(40) 暂不支持,值为NULL。 def_next_extent character varying(40) 暂不支持,值为NULL。 def_min_extents character varying(40) 暂不支持,值为NULL。 def_max_extents character varying(40) 暂不支持,值为NULL。 def_max_size character varying(40) 暂不支持,值为NULL。 def_pct_increase character varying(40) 暂不支持,值为NULL。 def_freelists numeric 暂不支持,值为NULL。 def_freelist_groups numeric 暂不支持,值为NULL。 def_logging character varying(7) 暂不支持,值为NULL。 def_compression character varying(8) 添加分区时使用的默认压缩: NONE ENABLED DISABLED def_compress_for character varying(30) 添加分区时使用的默认压缩。 说明: 可用的压缩方法和压缩级别请参见•WITH ( { storage_parameter = value } [, ... ] )。 def_buffer_pool character varying(7) 暂不支持,值为DEFAULT。 def_flash_cache character varying(7) 暂不支持,值为NULL。 def_cell_flash_cache character varying(7) 暂不支持,值为NULL。 ref_ptn_constraint_name character varying(128) 暂不支持,值为NULL。 interval character varying(1000) 区间值字符串。 autolist character varying(3) 暂不支持,值为NO。 interval_subpartition character varying(1000) 暂不支持,值为NULL。 autolist_subpartition character varying(3) 暂不支持,值为NO。 is_nested character varying(3) 暂不支持,值为NO。 def_segment_creation character varying(4) 暂不支持段页式设置,当启用segment时,值为YES。 def_indexing character varying(3) 暂不支持,值为ON。 def_inmemory character varying(8) 暂不支持,值为NONE。 def_inmemory_priority character varying(8) 暂不支持,值为NULL。 def_inmemory_distribute character varying(15) 暂不支持,值为NULL。 def_inmemory_compression character varying(17) 暂不支持,值为NULL。 def_inmemory_duplicate character varying(13) 暂不支持,值为NULL。 def_read_only character varying(3) 暂不支持,值为NO。 def_cellmemory character varying(24) 暂不支持,值为NULL。 def_inmemory_service character varying(12) 暂不支持,值为NULL。 def_inmemory_service_name character varying(1000) 暂不支持,值为NULL。 父主题: 分区表
  • 参数说明 name 一个需要修改的现有类型的名称(可以有模式修饰) 。 new_name 该类型的新名称。 new_owner 新所有者的用户名 。 new_schema 该类型的新模式 。 attribute_name 拟增加、更改或删除的属性的名称。 new_attribute_name 拟改名的属性的新名称。 data_type 拟新增属性的数据类型,或是拟更改的属性的新类型名。 new_enum_value 枚举类型新增加的标签值,是一个非空的长度不超过63个字节的字符串。 neighbor_enum_value 一个已有枚举标签值,新值应该增加在紧接着该枚举值之前或者之后的位置上。 existing_enum_value 现有的要重命名的枚举值,是一个非空的长度不超过63个字节的字符串 CASCADE 自动级联更新需更新类型以及相关联的记录和继承它们的子表。 RESTRICT 如果需联动更新类型是已更新类型的关联记录,则拒绝更新,这是缺省选项。 ADD ATTRIBUTE、DROP ATTRIBUTE和ALTER ATTRIBUTE选项可以组合成一个列表同时处理多个属性更改。 例如,在一条命令中同时增加几个属性或是更改几个属性的类型。 要修改一个类型的模式,必须在新模式上拥有CREATE权限。要修改所有者,必须是新的所有角色的直接或间接成员,并且该成员必须在此类型的模式上有CREATE权限(这些限制了修改所有者不会做任何通过删除和重建类型不能做的事情。但是,三权分立关闭时的系统管理员可以以任何方式修改任意类型的所有权)。要增加一个属性或是修改一个属性的类型,也必须有该类型的USAGE权限。 CURRENT_USER 当前用户。 SESSION_USER 当前系统用户。 COLLATE collation COLLATE子句为该列(必须是一种可排序数据类型)赋予一个排序规则。 如果没有指定,将使用该列数据类型的默认排序规则。
  • 语法格式 修改类型。 1 ALTER TYPE name action [, ... ]; 其中action对应的子句如下: 给复合类型增加新的属性。 1 ADD ATTRIBUTE attribute_name data_type [ COLLATE collation ] [ CASCADE | RESTRICT ] 从复合类型中删除一个属性。 1 DROP ATTRIBUTE [ IF EXISTS ] attribute_name [ CASCADE | RESTRICT ] 改变一种复合类型中某个属性的类型。 1 ALTER ATTRIBUTE attribute_name [ SET DATA ] TYPE data_type [ COLLATE collation ] [ CASCADE | RESTRICT ]
  • 示例 对复合类型的修改。 --创建复合类型。 gaussdb=# CREATE TYPE typ_stu AS (name varchar(10),age int); --创建表并插入数据,其中info字段数据类型为typ_stu。 gaussdb=# CREATE TABLE tbl_test (id int PRIMARY KEY,info typ_stu); gaussdb=# INSERT INTO tbl_test VALUES (1,('Jim',16)); --查看tbl_test数据。 gaussdb=# SELECT * FROM tbl_test; id | info ----+---------- 1 | (Jim,16) (1 row) --为复合类型增加一个新的属性。 gaussdb=# ALTER TYPE typ_stu ADD ATTRIBUTE year int CASCADE; --再次查看tbl_test数据,info多了一个属性。 gaussdb=# SELECT * FROM tbl_test; id | info ----+----------- 1 | (Jim,16,) (1 row) --从复合类型删除一个属性。 gaussdb=# ALTER TYPE typ_stu DROP ATTRIBUTE year; 修改类型所有者。 --创建用户test。 gaussdb=# CREATE ROLE test PASSWORD '********'; --修改typ_stu的所有者为test。 gaussdb=# ALTER TYPE typ_stu OWNER TO test; --查询typ_stu拥有者。 gaussdb=# SELECT t1.typname, t2.rolname AS owner FROM pg_type t1, gs_roles t2 WHERE t1.typname = 'typ_stu' AND t1.typowner = t2.oid; typname | owner ---------+-------- typ_stu | test (1 row) 修改类型或是一个复合类型中的一个属性的名称。 --将typ_stu的其中一个属性age重命名为age1。 gaussdb=# ALTER TYPE typ_stu RENAME ATTRIBUTE age to age1; --通过如下SQL查询tbl_test表中年龄为16的数据。 gaussdb=# SELECT id,(info).name,(info).age1 FROM tbl_test WHERE (info).age1 = 16; id | name | age1 ----+------+------ 1 | Jim | 16 (1 row) 将类型移至一个新的模式中。 --创建模式sctest。 gaussdb=# CREATE SCHEMA sctest; --将typ_stu移至模式sc_test中。 gaussdb=# ALTER TYPE typ_stu SET SCHEMA sctest; --查询typ_stu的所属模式。 gaussdb=# \dT sctest.* List of data types Schema | Name | Description --------+----------------+------------- sctest | sctest.typ_stu | (1 row) --删除表。 gaussdb=# DROP TABLE tbl_test; gaussdb=# DROP TYPE sctest.typ_stu; gaussdb=# DROP ROLE test; gaussdb=# DROP SCHEMA sctest; 为枚举类型增加一个新值。 --创建一个枚举类型typ_bugstatus。 gaussdb=# CREATE TYPE typ_bugstatus AS ENUM ('create', 'modify', 'closed'); --创建表tbl_test1。 gaussdb=# CREATE TABLE tbl_test1 (id serial, bugstat typ_bugstatus); --插入数据时bugstat字段必须是枚举类型中的值,否则报错。 gaussdb=# INSERT INTO tbl_test1 (bugstat) VALUES ('closed'); gaussdb=# INSERT INTO tbl_test1 (bugstat) VALUES ('deleted'); ERROR: invalid input value for enum typ_bugstatus: "deleted" LINE 1: INSERT INTO tbl_test1 (bugstat) VALUES ('deleted'); ^ CONTEXT: referenced column: bugstat --查看tbl_test1数据。 gaussdb=# SELECT * FROM tbl_test1; id | bugstat ----+--------- 1 | closed (1 row) --为枚举类型增加一个标签值。 gaussdb=# ALTER TYPE typ_bugstatus ADD VALUE IF NOT EXISTS 'regress' BEFORE 'closed'; --查询。 gaussdb=# \dT+ typ_bugstatus List of data types Schema | Name | Internal name | Size | Elements | Access privileges | Description --------+---------------+---------------+------+----------+-------------------+------------- public | typ_bugstatus | typ_bugstatus | 4 | create +| | | | | | modify +| | | | | | regress +| | | | | | closed | | (1 row) 重命名枚举类型的一个标签值。 --将类型typ_bugstatus中closed修改为close。 gaussdb=# ALTER TYPE typ_bugstatus RENAME VALUE 'closed' TO 'close'; --查看表tbl_test1数据,其中closed的数据也都改成了close。 gaussdb=# SELECT * FROM tbl_test1; id | bugstat ----+--------- 1 | close (1 row) --查询。 gaussdb=# \dT+ typ_bugstatus; List of data types Schema | Name | Internal name | Size | Elements | Access privileges | Description --------+---------------+---------------+------+----------+-------------------+------------- public | typ_bugstatus | typ_bugstatus | 4 | create +| | | | | | modify +| | | | | | regress +| | | | | | close | | (1 row) --删除。 gaussdb=# DROP TABLE tbl_test1; gaussdb=# DROP TYPE typ_bugstatus;
  • MPP_TABLES MPP_TABLES视图显示PGXC_CLASS中表的信息。具体字段信息如表1所示。 表1 MPP_TABLES字段 名称 类型 描述 schemaname name 表的模式名。 tablename name 表名。 tableowner name 表的所有者。 tablespace name 表所在的表空间。 pgroup name 节点群的名称。 nodeoids oidvector_extend 表分布的节点OID列表。 父主题: 其他系统视图
  • GLOBAL_STAT_SYS_INDEXES 显示各节点pg_catalog、information_schema以及pg_toast模式中所有系统表的索引状态信息(包含CN与DN节点的索引状态信息,在CN节点使用,不汇总),如表1所示。 表1 GLOBAL_STAT_SYS_INDEXES字段 名称 类型 描述 node_name name 节点名称 relid oid 这个索引的表的OID。 indexrelid oid 索引的OID。 schemaname name 索引所在的Schema名。 relname name 索引的表名。 indexrelname name 索引名。 idx_scan bigint 该索引上执行的索引扫描次数。 idx_tup_read bigint 该索引上扫描返回的索引项数。 idx_tup_fetch bigint 使用该索引的简单索引扫描在原表中抓取的活跃行数。 父主题: Object
  • GS_MY_PLAN_TRACE GS_MY_PLAN_TRACE是系统表GS_PLAN_TRACE的视图,该视图主要用来查看当前用户的plan trace。具体字段信息如表1所示。分布式场景下不支持plan trace特性,所以在分布式下该视图中无数据。 表1 GS_MY_PLAN_TRACE字段 名称 类型 描述 query_id text 当前请求的唯一id。 query text 当前请求的sql语句,该字段大小不会超过系统参数track_activity_query_size指定的大小。 unique_sql_id bigint 当前请求sql的唯一id。 plan text 当前请求sql对应的查询计划文本。该字段大小不会超过10K。 plan_trace text 当前请求sql对应的查询计划生成过程的明细,该字段大小不会超过300M。 modifydate timestamp with time zone 当前plan trace的更新时间(当前指的是plan trace创建时间)。 父主题: 其他系统视图
  • 原型 1 2 3 4 SQLRETURN SQLSetEnvAttr(SQLHENV EnvironmentHandle SQLINTEGER Attribute, SQLPOINTER ValuePtr, SQLINTEGER StringLength);
  • 参数 表1 SQLSetEnvAttr参数 关键字 参数说明 EnvironmentHandle 环境句柄。 Attribute 需设置的环境属性,可为如下值: SQL_ATTR_ODBC_VERSION:指定ODBC版本。 SQL_CONNECTION_POOLING:连接池属性。 SQL_OUTPUT_NTS:指明驱动器返回字符串的形式。 ValuePtr 指向对应Attribute的值。依赖于Attribute的值,ValuePtr可能是32位整型值,或为以空结束的字符串。 StringLength 如果ValuePtr指向字符串或二进制缓冲区,这个参数是*ValuePtr长度,如果ValuePtr指向整型,忽略StringLength。
  • GLOBAL_STAT_ALL_INDEXES 显示集群内数据库各节点中每个索引的访问信息(在CN节点使用,每个索引在每个节点下的状态信息不汇总),如表1所示。 表1 GLOBAL_STAT_ALL_INDEXES字段 名称 类型 描述 node_name name 节点名称。 relid oid 该索引的表的OID。 indexrelid oid 索引的OID。 schemaname name 索引所在的Schema名。 relname name 索引的表名。 indexrelname name 索引名。 idx_scan bigint 该索引上执行的索引扫描次数。 idx_tup_read bigint 该索引上扫描返回的索引项数。 idx_tup_fetch bigint 使用该索引的简单索引扫描在原表中抓取的活跃行数。 last_updated timestamp with time zone 视图中该索引监控数据最后一次更新的时间。 父主题: Object
  • PG_ENUM PG_ENUM系统表包含显示每个枚举类型值和标签的记录。给定枚举类型的内部表示实际上是PG_ENUM里面相关行的OID。 表1 PG_ENUM字段 名称 类型 引用 描述 oid oid - 行标识符(隐含字段,必须明确选择)。 enumtypid oid PG_TYPE.oid 拥有这个枚举值的12.2.15.78 PG_TYPE记录的OID。 enumsortorder real - 这个枚举值在它的枚举类型中的排序位置。 enumlabel name - 这个枚举值的文本标签。 PG_ENUM行的OID跟着一个特殊规则:偶数的OID保证用和它们的枚举类型一样的排序顺序。也就是,如果两个偶数OID属于相同的枚举类型,那么较小的OID必须有较小enumsortorder值。奇数OID需要毫无关系的排序顺序。这个规则允许枚举比较例程在许多常见情况下避开目录查找。创建和修改枚举类型的例程只要可能就尝试分配偶数OID给枚举值。 当创建了一个枚举类型时,它的成员赋予了排序顺序位置1到n。但是随后添加的成员可能会分配enumsortorder的负值或分数值。对这些值的唯一要求是它们要正确的排序和在每个枚举类型中唯一。 父主题: 其他系统表
  • LOCAL_IO_WAIT_INFO 显示当前节点I/O管控的实时统计信息,如表1所示。 表1 LOCAL_IO_WAIT_INFO字段 名称 类型 描述 node_name text 节点名称。 device_name text 节点挂载的数据磁盘名称。 read_per_second double precision 读完成每秒次数。 write_per_second double precision 写完成每秒次数。 write_ratio double precision 写磁盘占总的I/O使用的比例。 io_util double precision 每秒I/O所占CPU总时间的百分比。 total_io_util integer 过去三次I/O所占CPU总时间的等级(取值为0~6)。 tick_count integer 更新磁盘I/O信息的周期,固定为1秒,每次读取数据前都会被清零。 io_wait_list_len integer I/O请求线程等待队列的大小,若为0,则表示当前没有I/O被管控。 父主题: Workload Manager
  • PG_AUTH_HISTORY PG_AUTH_HISTORY系统表记录了角色的认证历史。需要有系统管理员权限才可以访问此系统表。 表1 PG_AUTH_HISTORY字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 roloid oid 角色标识。 passwordtime timestamp with time zone 创建和修改密码的时间。 rolpassword text 角色密码密文,加密方式由GUC参数password_encryption_type确定。 父主题: 连接和认证
  • GS_ADM_ILMTASKS GS_ADM_ILMTASKS视图反映ADO Task的概要信息,包含Task ID,Task Owner,状态以及时间信息。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。 表1 GS_ADM_ILMTASKS字段 名称 类型 描述 task_id bigint ADO Task的ID。 task_owner character varying(128) ADO Task发起的用户,仅ADM视图存在此列。 state character varying(9) 状态: INACTIVE:非活动。 ACTIVE:活动。 COMPLETED:完成。 UNKNOWN:评估中。 creation_time timestamp with time zone 创建时间。 start_time timestamp with time zone 变成活动状态的时间。 completion_time timestamp with time zone 完成时间。 node_name name 数据来源节点的名称。 父主题: OLTP表压缩
  • 功能描述 检查点(CHECKPOINT)是一个事务日志中的点,所有数据文件都在该点被更新以反映日志中的信息,所有数据文件都将被刷新到磁盘。 设置事务日志检查点。预写式日志(WAL)缺省时在事务日志中每隔一段时间放置一个检查点。可以使用gs_guc命令设置相关运行时参数(checkpoint_segments, checkpoint_timeout和incremental_checkpoint_timeout)来调整这个原子化检查点的间隔。
共100000条