华为云用户手册

  • WLM_CGROUP_CONFIG WLM_CGROUP_CONFIG视图显示当前执行作业的控制组的信息。 表1 WLM_CGROUP_CONFIG字段 名称 类型 描述 cgoup_name text 控制组的名称。 priority integer 作业的优先级。 usage_pecent integer 控制组占用的百分比。 shares bigint 控制组分配的CPU资源配额。 cpuacct bigint CPU配额分配。 cpuset text CPU限额分配。 relpath text 控制组的相对路径。 valid text 该控制组是否有效。 父主题: Workload Manager
  • 语法格式 清理表数据。 1 2 TRUNCATE [ TABLE ] [ ONLY ] {table_name [ * ]} [, ... ] [ CONTINUE IDENTITY ] [ CASCADE | RESTRICT ] [ PURGE ]; 清理表分区的数据。 1 2 3 4 5 ALTER TABLE [ IF EXISTS ] { [ ONLY ] table_name | table_name * | ONLY ( table_name ) } TRUNCATE PARTITION { partition_name | FOR ( partition_value [, ...] ) } [ UPDATE GLOBAL INDEX ];
  • 参数说明 ONLY 如果声明ONLY,只有指定的表会被清空。如果没有声明ONLY,这个表以及其所有子表(若有)会被清空。 table_name 目标表的名称(可以有模式修饰)。 取值范围:已存在的表名。 CONTINUE IDENTITY 不改变序列的值。这是缺省值。 CASCADE | RESTRICT CASCADE:级联清空所有由于CASCADE而被添加到组中的表。 RESTRICT(缺省值):如果其他表在该表上有外键引用则拒绝清空(分布式场景暂不支持)。 PURGE 默认将表数据放入回收站中,PURGE直接清理。 partition_name 目标分区表的分区名。 取值范围:已存在的分区名。 partition_value 指定的分区键值。 通过PARTITION FOR子句指定的这一组值,可以唯一确定一个分区。 取值范围:需要进行删除数据分区的分区键的取值范围。 使用PARTITION FOR子句时,partition_value所在的整个分区会被清空。
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 --创建SCHEMA。 gaussdb=# CREATE SCHEMA tpcds; --创建表tpcds.reason。 gaussdb=# CREATE TABLE tpcds.reason( r_reason_sk integer, r_reason_id character(16), r_reason_desc character(100) ); --向表中插入多条记录。 gaussdb=# INSERT INTO tpcds.reason values(1,'AAAAAAAABAAAAAAA','reason 1'),(5,'AAAAAAAABAAAAAAA','reason 2'),(15,'AAAAAAAABAAAAAAA','reason 3'),(25,'AAAAAAAABAAAAAAA','reason 4'),(35,'AAAAAAAABAAAAAAA','reason 5'),(45,'AAAAAAAACAAAAAAA','reason 6'),(55,'AAAAAAAACAAAAAAA','reason 7'); --创建表。 gaussdb=# CREATE TABLE tpcds.reason_t1 AS TABLE tpcds.reason; --清空表tpcds.reason_t1。 gaussdb=# TRUNCATE TABLE tpcds.reason_t1; --删除表。 gaussdb=# DROP TABLE tpcds.reason_t1; 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 --创建分区表。 gaussdb=# CREATE TABLE tpcds.reason_p ( r_reason_sk integer, r_reason_id character(16), r_reason_desc character(100) )PARTITION BY RANGE (r_reason_sk) ( partition p_05_before values less than (05), partition p_15 values less than (15), partition p_25 values less than (25), partition p_35 values less than (35), partition p_45_after values less than (MAXVALUE) ); --插入数据。 gaussdb=# INSERT INTO tpcds.reason_p SELECT * FROM tpcds.reason; --清空分区p_05_before。 gaussdb=# ALTER TABLE tpcds.reason_p TRUNCATE PARTITION p_05_before; --清空分区p_15。 gaussdb=# ALTER TABLE tpcds.reason_p TRUNCATE PARTITION for (13); --清空分区表。 gaussdb=# TRUNCATE TABLE tpcds.reason_p; --删除表tpcds.reason_p。 gaussdb=# DROP TABLE tpcds.reason_p; --删除表tpcds.reason。 gaussdb=# DROP TABLE tpcds.reason; --删除SCHEMA。 gaussdb=# DROP SCHEMA tpcds CASCADE;
  • 注意事项 TRUNCATE TABLE在功能上与不带WHERE子句DELETE语句相同:二者均删除表中的全部行。 TRUNCATE TABLE比DELETE速度快且使用系统和事务日志资源少: DELETE语句每次删除一行,并在事务日志中为所删除每行记录一项。 TRUNCATE TABLE通过释放存储表数据所用数据页来删除数据,并且只在事务日志中记录页的释放。 TRUNCATE、DELETE和DROP三者的差异如下: TRUNCATE TABLE:删除内容,释放空间,但不删除定义。 DELETE TABLE:删除内容,不删除定义,不释放空间。 DROP TABLE:删除内容和定义,释放空间。
  • 审视和修改表定义概述 在分布式框架下,数据分布在各个DN上。一个或者几个DN的数据存在一块物理存储设备上,好的表定义至少需要达到以下几个目标: 表数据均匀分布在各个DN上,以防止单个DN对应的存储设备空间不足造成集群有效容量下降。选择合适分布列,避免数据分布倾斜可以实现该点。 表Scan压力均匀分散在各个DN上,以避免单DN的Scan压力过大,形成Scan的单节点瓶颈。分布列不选择基表上等值filter中的列可以实现该点。 减少扫描数据量。通过分区的剪枝机制可以实现该点。 尽量减少随机I/O。通过聚簇可以实现该点。 尽量避免数据shuffle,减小网络压力。通过选择join-condition或者group by列为分布列可以最大程度的实现这点。 从上述描述来看表定义中最重要的一点是分布列的选择。创建表定义一般遵循图1所示流程。表定义在数据库设计阶段创建,在SQL调优过程中进行审视和修改。 图1 表定义流程 父主题: 审视和修改表定义
  • PG_TS_PARSER PG_TS_PARSER系统表包含定义文本解析器的记录。解析器负责分裂输入文本为词位,并且为每个词位分配标记类型。因为解析器必须通过C语言级别的函数实现,所以新解析器必须由数据库系统管理员创建。 表1 PG_TS_PARSER字段 名称 类型 引用 描述 oid oid - 行标识符(隐含字段;必须明确选择)。 prsname name - 文本搜索解析器名。 prsnamespace oid PG_NAMESPACE.oid 包含这个解析器的名称空间的OID。 prsstart regproc PG_PROC.proname 解析器的启动函数名。 prstoken regproc PG_PROC.proname 解析器的下一个标记函数名。 prsend regproc PG_PROC.proname 解析器的关闭函数名。 prsheadline regproc PG_PROC.proname 解析器的标题函数名。 prslextype regproc PG_PROC.proname 解析器的lextype函数名。 父主题: 系统表
  • STATIO_SYS_INDEXES STATIO_SYS_INDEXES显示命名空间中所有系统表索引的I/O状态信息。 表1 STATIO_SYS_INDEXES字段 名称 类型 描述 relid oid 索引的表的OID。 indexrelid oid 该索引的OID。 schemaname name 该索引的模式名。 relname name 该索引的表名。 indexrelname name 索引名称。 idx_blks_read bigint 从索引中读取的磁盘块数。 idx_blks_hit bigint 索引命中缓存数。 父主题: Cache/IO
  • javax.sql.DataSource javax.sql.DataSource是数据源接口。 表1 对javax.sql.DataSource接口的支持情况 方法名 返回值类型 支持JDBC 4 getConneciton() Connection Yes getConnection(String username,String password) Connection Yes getLoginTimeout() int Yes getLogWriter() PrintWriter Yes setLoginTimeout(int seconds) void Yes setLogWriter(PrintWriter out) void Yes 父主题: JDBC接口参考
  • LOCAL_PLANCACHE_STATUS LOCAL_PLANCACHE_STATUS视图显示当前节点的GPC全局计划缓存状态信息。 表1 LOCAL_PLANCACHE_STATUS字段 名称 类型 描述 nodename text 所属节点名称。 query text 查询语句text。 refcount integer 被引用次数。 valid bool 是否合法。 databaseid oid 所属数据库id。 schema_name text 所属schema。 params_num integer 参数数量。 func_id oid 该plancache所在存储过程oid,如果不属于存储过程则为0。 stmt_id integer 显示存储过程内语句计划的序号。 父主题: Global Plancache
  • 示例 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 --创建jim和tom用户。 gaussdb=# CREATE USER jim PASSWORD '********'; gaussdb=# CREATE USER tom PASSWORD '********'; --创建一个GBK编码的数据库music(本地环境的编码格式必须也为GBK)。 gaussdb=# CREATE DATABASE music ENCODING 'GBK' template = template0; --创建数据库music2,并指定所有者为jim。 gaussdb=# CREATE DATABASE music2 OWNER jim; --用模板template0创建数据库music3,并指定所有者为jim。 gaussdb=# CREATE DATABASE music3 OWNER jim TEMPLATE template0; --设置music数据库的连接数为10。 gaussdb=# ALTER DATABASE music CONNECTION LIMIT= 10; --将music名称改为music4。 gaussdb=# ALTER DATABASE music RENAME TO music4; --将数据库music2的所属者改为tom。 gaussdb=# ALTER DATABASE music2 OWNER TO tom; --删除数据库。 gaussdb=# DROP DATABASE music2; gaussdb=# DROP DATABASE music3; gaussdb=# DROP DATABASE music4; --删除jim和tom用户。 gaussdb=# DROP USER jim; gaussdb=# DROP USER tom; --创建兼容TD格式的数据库。 gaussdb=# CREATE DATABASE td_compatible_db DBCOMPATIBILITY 'TD'; --创建兼容ORA格式的数据库。 gaussdb=# CREATE DATABASE ora_compatible_db DBCOMPATIBILITY 'ORA'; --删除兼容TD、ORA格式的数据库。 gaussdb=# DROP DATABASE td_compatible_db; gaussdb=# DROP DATABASE ora_compatible_db;
  • 参数说明 database_name 数据库名称。 取值范围:字符串,要符合标识符命名规范。 OWNER [ = ] user_name 数据库所有者。缺省时,新数据库的所有者是当前用户。 取值范围:已存在的用户名。 TEMPLATE [ = ] template 模板名。即从哪个模板创建新数据库。 GaussDB 采用从模板数据库复制的方式来创建新的数据库。初始时,GaussDB包含两个模板数据库template0、template1,以及一个默认的用户数据库postgres。 取值范围:仅template0。 ENCODING [ = ] 'encoding' 指定数据库使用的字符编码,可以是字符串(如'SQL_ASCII')、整数编号。 不指定时,默认使用模版数据库的编码。模板数据库template0和template1的编码默认与操作系统环境相关。template1不允许修改字符编码,因此若要变更编码,请使用template0创建数据库。 常用取值:GBK、UTF8、Latin1、GB18030等,具体支持的字符集如下。 表1 支持的字符集 名称 描述 语言 是否服务器端? ICU(International Components for Unicode)? 字节/字符 别名 BIG5 Big Five 繁体中文 否 否 1-2 WIN950, Windows950 EUC_CN 扩展UNIX编码-中国 简体中文 是 是 1-3 - EUC_JP 扩展UNIX编码-日本 日文 是 是 1-3 - EUC_JIS_2004 扩展UNIX编码-日本, JIS X 0213 日文 是 否 1-3 - EUC_KR 扩展UNIX编码-韩国 韩文 是 是 1-3 - EUC_TW 扩展UNIX编码-中国台湾 繁体中文 是 是 1-3 - GB18030 国家标准 中文 是 否 1-4 - GB18030_2022 国家标准 中文 是 否 1-4 - GBK 扩展国家标准 简体中文 是 否 1-2 WIN936, Windows936 ISO_8859_5 ISO 8859-5, ECMA 113 拉丁语/西里尔语 是 是 1 - ISO_8859_6 ISO 8859-6, ECMA 114 拉丁语/阿拉伯语 是 是 1 - ISO_8859_7 ISO 8859-7, ECMA 118 拉丁语/希腊语 是 是 1 - ISO_8859_8 ISO 8859-8, ECMA 121 拉丁语/希伯来语 是 是 1 - JOHAB JOHAB 韩语 否 否 1-3 - KOI8R KOI8-R 西里尔语(俄语) 是 是 1 KOI8 KOI8U KOI8-U 西里尔语(乌克兰语) 是 是 1 - LATIN1 ISO 8859-1, ECMA 94 西欧 是 是 1 ISO88591 LATIN2 ISO 8859-2, ECMA 94 中欧 是 是 1 ISO88592 LATIN3 ISO 8859-3, ECMA 94 南欧 是 是 1 ISO88593 LATIN4 ISO 8859-4, ECMA 94 北欧 是 是 1 ISO88594 LATIN5 ISO 8859-9, ECMA 128 土耳其语 是 是 1 ISO88599 LATIN6 ISO 8859-10, ECMA 144 日耳曼语 是 是 1 ISO885910 LATIN7 ISO 8859-13 波罗的海 是 是 1 ISO885913 LATIN8 ISO 8859-14 凯尔特语 是 是 1 ISO885914 LATIN9 ISO 8859-15 带欧罗巴和口音的LATIN1 是 是 1 ISO885915 LATIN10 ISO 8859-16, ASRO SR 14111 罗马尼亚语 是 否 1 ISO885916 MULE_INTERNAL Mule内部编码 多语种编辑器 是 否 1-4 - SJIS Shift JIS 日语 否 否 1-2 Mskanji, ShiftJIS, WIN932, Windows932 SHIFT_JIS_2004 Shift JIS, JIS X 0213 日语 否 否 1-2 - SQL_ASCII 未指定(见文本) 任意 是 否 1 - UHC 统一韩语编码 韩语 否 否 1-2 WIN949, Windows949 UTF8 Unicode, 8-bit 所有 是 是 1-4 Unicode WIN866 Windows CP866 西里尔语 是 是 1 ALT WIN874 Windows CP874 泰语 是 否 1 - WIN1250 Windows CP1250 中欧 是 是 1 - WIN1251 Windows CP1251 西里尔语 是 是 1 WIN WIN1252 Windows CP1252 西欧 是 是 1 - WIN1253 Windows CP1253 希腊语 是 是 1 - WIN1254 Windows CP1254 土耳其语 是 是 1 - WIN1255 Windows CP1255 希伯来语 是 是 1 - WIN1256 Windows CP1256 阿拉伯语 是 是 1 - WIN1257 Windows CP1257 波罗的海 是 是 1 - WIN1258 Windows CP1258 越南语 是 是 1 ABC, TCVN, TCVN5712, VSCII 需要注意并非所有的客户端API都支持上面列出的字符集。 SQL_ASCII设置与其他设置表现得相当不同。如果服务器字符集是SQL_ASCII,服务器把字节值0-127根据 ASCII标准解释,而字节值128-255则当作无法解析的字符。如果设置为SQL_ASCII,就不会有编码转换。因此,这个设置基本不是用来声明所使用的指定编码, 因为这个声明会忽略编码。在大多数情况下,如果你使用了任何非ASCII数据,那么使用 SQL_ASCII设置都是不明智的,因为数据库将无法帮助你转换或者校验非ASCII字符。 指定新的数据库字符集编码必须与所选择的本地环境中(LC_COLLATE和LC_CTYPE)的设置兼容。 当指定的字符编码集为GBK时,部分中文生僻字无法直接作为对象名。这是因为GBK第二个字节的编码范围在0x40-0x7E之间时,字节编码与ASCII字符@A-Z[\]^_`a-z{|}重叠。其中@[\]^_'{|}是数据库中的操作符,直接作为对象名时,会语法报错。例如“侤”字,GBK16进制编码为0x8240,第二个字节为0x40,与ASCII“@”符号编码相同,因此无法直接作为对象名使用。如果确实要使用,可以在创建和访问对象时,通过增加双引号来规避这个问题。 若客户端编码为A,服务器端编码为B,则需要满足数据库中存在编码格式A与B的转换。数据库能够支持的所有的编码格式转换详见系统表PG_CONVERSION(若无法转换,则建议客户端编码与服务器端编码保持一致,客户端编码可通过GUC参数client_encoding修改)。 若要指定数据库字符集编码为GB18030_2022,且客户端编码也要设置为GB18030时,必须确保客户端操作系统支持的GB18030字符集为2022版本,否则由于GB18030字符集自身的各版本间存在不完全兼容,可能导致数据的不一致性。同时,涉及到历史数据切换为GB18030_2022数据库时应当遵循切库流程,进行数据迁移操作。 LC_COLLATE [ = ] 'lc_collate' 指定新数据库使用的字符集。例如,通过lc_collate = 'zh_CN.gbk'设定该参数。 该参数的使用会影响到对字符串的排序顺序(如使用ORDER BY执行,以及在文本列上使用索引的顺序)。默认是使用模板数据库的字符集。 取值范围:操作系统支持的字符集。 LC_CTYPE [ = ] 'lc_ctype' 指定新数据库使用的字符分类。例如,通过lc_ctype = 'zh_CN.gbk'设定该参数。该参数的使用会影响到字符的分类,如大写、小写和数字。默认是使用模板数据库的字符分类。 取值范围:操作系统支持的字符分类。 对于lc_collate和lc_ctype参数的取值范围,取决于本地环境支持的字符集。例如:在Linux操作系统上,可通过locale -a命令获取操作系统支持的字符集列表,在应用lc_collate和lc_ctype参数时可从中选择用户需要的字符集和字符分类。 当指定的字符编码集为GB18030_2022时,其LC_COLLATE和LC_CTYPE的取值范围与GB18030保持一致。 DBCOMPATIBILITY [ = ] 'compatibilty_type' 指定兼容的数据库的类型,默认兼容MySQL。 取值范围:MYSQL、TD、ORA、PG。分别表示兼容MySQL、TD(Teradata)、Oracle和PostgreSQL。 ORA兼容性下,数据库将空字符串作为NULL处理,数据类型DATE会被替换为TIMESTAMP(0) WITHOUT TIME ZONE。 将字符串转换成整数类型时,如果输入不合法,MYSQL兼容性会将输入转换为0,而其它兼容性则会报错。 PG兼容性下,CHAR和VARCHAR以字符为计数单位,其它兼容性以字节为计数单位。例如,对于UTF-8字符集,CHAR(3)在PG兼容性下能存放3个中文字符,而在其它兼容性下只能存放1个中文字符。 执行语句报错时,部分报错信息中显示“A-format”或“B-format”,“A-format”表示“ORA-format”,“B-format”表示“MYSQL-format”。 TABLESPACE [ = ] tablespace_name 指定数据库对应的表空间。 取值范围:已存在表空间名。 CONNECTION LIMIT [ = ] connlimit 数据库可以接受的并发连接数。 系统管理员不受此参数的限制。 connlimit每个CN单独统计,集群整体的连接数 = connlimit * 当前正常CN节点个数。 取值范围:[-1, 2^31-1]的整数。默认值为-1,表示没有限制。 有关字符编码的一些限制: 若区域设置为C(或POSIX),则允许所有的编码类型,但是对于其他的区域设置,字符编码必须和区域设置相同。 编码和区域设置必须匹配模板数据库,除了将template0当作模板。 因为其他数据库可能会包含不匹配指定编码的数据,或者可能包含排序顺序受LC_COLLATE和LC_CTYPE影响的索引。复制这些数据会导致在新数据库中的索引失效。template0是不包含任何会受到影响的数据或者索引。 DBTIMEZONE [ = ] 'time_zone' 指定新数据库的时区。例如,通过DBTIMEZONE = '+00:00'设定该参数。该参数会影响新数据库的时区。默认设置为PRC时区。 取值范围:操作系统支持的时区名称和缩写或者-15:59到+15:00时间戳范围。
  • 语法格式 1 2 3 4 5 6 7 8 9 10 CREATE DATABASE database_name [ [ WITH ] { [ OWNER [=] user_name ] | [ TEMPLATE [=] template ] | [ ENCODING [=] 'encoding' ] | [ LC_COLLATE [=] 'lc_collate' ] | [ LC_CTYPE [=] 'lc_ctype' ] | [ DBCOMPATIBILITY [=] 'compatibilty_type' ] | [ TABLESPACE [=] tablespace_name ] | [ CONNECTION LIMIT [=] connlimit ] | [ DBTIMEZONE [=] 'time_zone' ] }[...] ];
  • PG_STATIO_ALL_SEQUEN CES PG_STATIO_ALL_SEQUENCES视图显示当前数据库中每个序列的I/O的统计信息。 表1 PG_STATIO_ALL_SEQUENCES字段 名称 类型 描述 relid oid 序列OID。 schemaname name 序列的模式名。 relname name 序列名。 blks_read bigint 从序列中读取的磁盘块数。 blks_hit bigint 序列命中缓存数。 父主题: 系统视图
  • ai_watchdog_monitor_status 表1 ai_watchdog_monitor_status参数说明 参数 类型 描述 metric_name text metric指标名称: tps:TPS。 tps_hourly:每小时的TPS均值。 shared_used_mem:共享内存使用量(MB)。 dynamic_used_shrctx:共享内存上下文使用量(MB)。 other_used_mem:其他内存使用量(MB)。 process_used_mem:系统常驻内存使用量(MB)。 dynamic_used_mem:动态内存使用量(MB)。 malloc_failures:每个采集间隔内的内存分配失败次数。 D_state_rate:D状态线程比例。 R_state_rate:R状态线程比例。 S_state_rate:S状态线程比例。 db_state:数据库的状态(68表示D、82表示R、83表示S)。 cpu_usage:CPU使用率,上限100。 disk_io:两个采集间隔内的磁盘I/O延迟。 network_io:两个采集间隔内的网络I/O延迟。 threadpool_usage:线程池使用率。 threadpool_hang_rate:线程池group处于hang状态的比例。 max_length int 采集队列长队。 current_length int 当前采集到的样本数。 collection_interval int 采集间隔,单位秒。 latest_value int 上次采集到的值,没采集到为null。 last_report timestamp 上次采集时刻。 父主题: AI Watchdog
  • Schema GaussDB的Schema如下表所示。 数据库禁止在提供功能接口的Schema下创建用户的业务数据,包括但不限于表、函数等(dbe_*, pkg_*)。 表1 GaussDB支持的Schema Schema名称 描述 dbe_perf DBE_PERF Schema内视图主要用来诊断性能问题,也是WDR Snapshot的数据来源。数据库安装后,默认只有初始用户和监控管理员具有模式dbe_perf的权限,有权查看该模式下的视图和函数。 snapshot 用于管理WDR snapshot的相关的数据信息,默认初始化用户或监控管理员用户可以访问。 sqladvsior 用于分布列推荐,具体使用方法见分布列推荐函数。 sys 用于提供系统信息视图接口。 pg_catalog 用于维护系统的catalog信息,包含系统表和所有内置数据类型、函数、操作符。 pg_toast 用于存储大对象(系统内部使用)。 public 公共模式,用于存储公共对象。search_path参数缺省时,如果存在用户同名的模式则将创建的表(以及其他对象)默认创建到同名模式下,不存在用户同名模式则自动放入public模式。 dbe_raw 高级功能包dbe_raw,用于raw类型数据的转化、取子串、求长度等操作。 dbe_session 高级功能包dbe_session,用于设置指定属性的值,并支持用户查询校验。 dbe_lob 高级功能包dbe_lob,用于大文件(clob/blob)的读取、写入、复制等操作。 dbe_match 高级功能包dbe_match,用于字符串相似度比较。 dbe_task 高级功能包dbe_task,用于作业任务的调度包括提交任务、取消任务、同步任务状态、更新任务信息等可以使数据库定期执行特定的任务。 dbe_sql 高级功能包dbe_sql,用于执行动态sql,可以在应用的运行时间构建查询和其它的命令。 dbe_file 高级功能包dbe_file,用于数据库外部文件的读取、复制、写入、删除、重命名等。 dbe_output 高级功能包dbe_output,用于打印输出信息。 dbe_random 高级功能包dbe_random,用于生成随机种子和随机数。 dbe_application_info 高级功能包dbe_application_info,用于记录客户端信息。 dbe_utility 高级功能包dbe_utility,用于存储过程调用调试工具,例如打印错误堆栈等。 dbe_scheduler 高级功能包dbe_scheduler,用于创建定时任务,通过程序(program)、调度(schedule)使数据库定期执行特定的任务。也可以通过授权、提供证书执行数据库外部任务。 information_schema 用于存储有关当前数据库中定义的对象的信息。 dbe_sql_util SQL运维功能,目前包含SQL Patch的运维接口。 表2 GaussDB目前禁用的Schema Schema名称 描述 dbe_pldebugger 用于调试PL/SQL函数及存储过程,目前暂不支持,该视图下接口调用报错unsupported。 db4ai 用于管理AI训练中不同版本的数据信息。 dbe_pldeveloper 用户存储过程编译调试。 Information Schema DBE_PERF Schema WDR Snapshot Schema DBE_SQL_UTIL Schema
  • GLOBAL_STAT_SYS_INDEXES 显示各节点pg_catalog、information_schema以及pg_toast模式中所有系统表的索引状态信息(包含CN与DN节点的索引状态信息,在CN节点使用,不汇总)。 表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
  • 示例 1 2 3 4 --删除客户端加密主密钥对象。 gaussdb=# DROP COLUMN ENCRYPTION KEY ImgCEK CASCADE; ERROR: cannot drop column setting: imgcek cascadely because encrypted column depend on it. HINT: we have to drop encrypted column: name, ... before drop column setting: imgcek cascadely.
  • 注意事项 所有该角色在当前数据库里和共享对象(数据库,表空间) 上的所有对象上的权限都将被撤销。 DROP OWNED常常被用来为移除一个或者多个角色做准备。因为DROP OWNED只影响当前数据库中的对象,通常需要在包含将被移除角色所拥有的对象的每一个数据库中都执行这个命令。 使用CASCADE选项可能导致这个命令递归去删除由其他用户所拥有的对象。 角色所拥有的数据库、表空间将不会被移除。 角色所拥有的私有DATABASE LINK连接需要添加CASCADE才可删除。
  • DB_SUBPART_KEY_COLUMNS DB_SUBPART_KEY_COLUMNS视图显示了当前用户可访问的二级分区表或分区索引的分区键列的相关信息。该视图所有用户可访问,显示当前用户可访问的所有信息。该视图同时存在于PG_CATA LOG 和SYS schema下。分布式暂不支持二级分区表,该视图所有字段值为NULL。 表1 DB_SUBPART_KEY_COLUMNS字段 名称 类型 描述 owner character varying(128) 暂不支持,值为NULL。 name character varying(128) 暂不支持,值为NULL。 object_type character varying(128) 暂不支持,值为NULL。 column_name character varying(4000) 暂不支持,值为NULL。 column_position numeric 暂不支持,值为NULL。 collated_column_id numeric 暂不支持,值为NULL。 父主题: 系统视图
  • 废弃函数 由于版本升级,HLL(HyperLogLog)有一些旧的函数废弃,用户可以用类似的函数进行替代。 hll_schema_version(hll) 描述:查看当前hll中的schema version。旧版本schema version是常值1,用来进行hll字段的头部校验,重构后的hll在头部增加字段“HLL”进行校验,schema version不再使用。 hll_regwidth(hll) 描述:查看hll数据结构中桶的位数大小。旧版本桶的位数regwidth取值1~5,会存在较大的误差,也限制了基数估计上限。 重构后regwidth为固定值6,不再使用regwidth变量。 hll_expthresh(hll) 描述:得到当前hll中expthresh大小。采用hll_log2explicit(hll)替代类似功能。 hll_sparseon(hll) 描述:是否启用Sparse模式。采用hll_log2sparse(hll)替代类似功能,0表示关闭Sparse模式。
  • 聚合函数 hll_add_agg(hll_hashval) 描述:把哈希后的数据按照分组放到hll中。 返回值类型:hll 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 --准备数据 gaussdb=# CREATE TABLE t_id(id int); gaussdb=# INSERT INTO t_id VALUES(generate_series(1,500)); gaussdb=# CREATE TABLE t_data(a int, c text); gaussdb=# INSERT INTO t_data SELECT mod(id,2), id FROM t_id; --创建表并指定列为hll gaussdb=# CREATE TABLE t_a_c_hll(a int, c hll); --根据a列GROUP BY对数据分组,把各组数据加到hll中 gaussdb=# INSERT INTO t_a_c_hll SELECT a, hll_add_agg(hll_hash_text(c)) FROM t_data GROUP BY a; --得到每组数据中hll的Distinct值 gaussdb=# SELECT a, #c AS cardinality FROM t_a_c_hll ORDER BY a; a | cardinality ---+------------------ 0 | 247.862354346299 1 | 250.908710610377 (2 rows)
  • 操作符 = 描述:比较hll或hll_hashval的值是否相等。 返回值类型:bool 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 --hll gaussdb=# SELECT (hll_empty() || hll_hash_integer(1)) = (hll_empty() || hll_hash_integer(1)); column ---------- t (1 row) --hll_hashval gaussdb=# SELECT hll_hash_integer(1) = hll_hash_integer(1); ?column? ---------- t (1 row)
  • 日志函数 hll主要存在三种模式Explicit、Sparse、Full。当数据规模比较小的时候会使用Explicit模式,这种模式下distinct值的计算是没有误差的;随着distinct值越来越多,hll会先后转换为Sparse模式和Full模式,这两种模式在计算结果上没有任何区别,只影响hll函数的计算效率和hll对象的存储空间。下面的函数可以用于查看hll的一些参数。 hll_print(hll) 描述:打印hll的一些debug参数信息。 示例: 1 2 3 4 5 gaussdb=# SELECT hll_print(hll_empty()); hll_print ------------------------------------------------------------------------------- type=1(HLL_EMPTY), log2m=14, log2explicit=10, log2sparse=12, duplicatecheck=0 (1 row)
  • 功能函数 hll_empty() 描述:创建一个空的hll。 返回值类型:hll 示例: 1 2 3 4 5 gaussdb=# SELECT hll_empty(); hll_empty ------------------------------------------------------------ \x484c4c00000000002b05000000000000000000000000000000000000 (1 row) hll_empty(int32 log2m) 描述:创建空的hll并指定参数log2m,取值范围是10到16。若输入-1,则采用内置默认值。 返回值类型:hll 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT hll_empty(10); hll_empty ------------------------------------------------------------ \x484c4c00000000002b04000000000000000000000000000000000000 (1 row) gaussdb=# SELECT hll_empty(-1); hll_empty ------------------------------------------------------------ \x484c4c00000000002b05000000000000000000000000000000000000 (1 row) hll_empty(int32 log2m, int32 log2explicit) 描述:创建空的hll并依次指定参数log2m、log2explicit。log2explicit取值范围是0到12,0表示直接跳过Explicit模式。该参数可以用来设置Explicit模式的阈值大小,在数据段长度达到2log2explicit后切换为Sparse模式或者Full模式。若输入-1,则log2explicit采用内置默认值。 返回值类型: hll 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT hll_empty(10, 4); hll_empty ------------------------------------------------------------ \x484c4c00000000001304000000000000000000000000000000000000 (1 row) gaussdb=# SELECT hll_empty(10, -1); hll_empty ------------------------------------------------------------ \x484c4c00000000002b04000000000000000000000000000000000000 (1 row) hll_empty(int32 log2m, int32 log2explicit, int64 log2sparse) 描述:创建空的hll并依次指定参数log2m、log2explicit、log2sparse。log2sparse取值范围是0到14,0表示直接跳过Sparse模式。该参数可以用来设置Sparse模式的阈值大小,在数据段长度达到2log2sparse后切换为Full模式。若输入-1,则log2sparse采用内置默认值。 返回值类型:hll 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT hll_empty(10, 4, 8); hll_empty ------------------------------------------------------------ \x484c4c00000000001204000000000000000000000000000000000000 (1 row) gaussdb=# SELECT hll_empty(10, 4, -1); hll_empty ------------------------------------------------------------ \x484c4c00000000001304000000000000000000000000000000000000 (1 row) hll_empty(int32 log2m, int32 log2explicit, int64 log2sparse, int32 duplicatecheck) 描述:创建空的hll并依次指定参数log2m、log2explicit、log2sparse、duplicatecheck。duplicatecheck取0或者1,表示是否开启该模式,默认情况下该模式会关闭。若输入-1,则duplicatecheck采用内置默认值。 返回值类型:hll 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT hll_empty(10, 4, 8, 0); hll_empty ------------------------------------------------------------ \x484c4c00000000001204000000000000000000000000000000000000 (1 row) gaussdb=# SELECT hll_empty(10, 4, 8, -1); hll_empty ------------------------------------------------------------ \x484c4c00000000001204000000000000000000000000000000000000 (1 row) hll_add(hll, hll_hashval) 描述:把hll_hashval加入到hll中。 返回值类型:hll 示例: 1 2 3 4 5 gaussdb=# SELECT hll_add(hll_empty(), hll_hash_integer(1)); hll_add ---------------------------------------------------------------------------- \x484c4c08000002002b0900000000000000f03f3e2921ff133fbaed3e2921ff133fbaed00 (1 row) hll_add_rev(hll_hashval, hll) 描述:把hll_hashval加入到hll中,和hll_add功能一样,只是参数位置进行了交换。 返回值类型:hll 示例: 1 2 3 4 5 gaussdb=# SELECT hll_add_rev(hll_hash_integer(1), hll_empty()); hll_add_rev ---------------------------------------------------------------------------- \x484c4c08000002002b0900000000000000f03f3e2921ff133fbaed3e2921ff133fbaed00 (1 row) hll_eq(hll, hll) 描述:比较两个hll是否相等。 返回值类型:bool 示例: 1 2 3 4 5 gaussdb=# SELECT hll_eq(hll_add(hll_empty(), hll_hash_integer(1)), hll_add(hll_empty(), hll_hash_integer(2))); hll_eq -------- f (1 row) hll_ne(hll, hll) 描述:比较两个hll是否不相等。 返回值类型:bool 示例: 1 2 3 4 5 gaussdb=# SELECT hll_ne(hll_add(hll_empty(), hll_hash_integer(1)), hll_add(hll_empty(), hll_hash_integer(2))); hll_ne -------- t (1 row) hll_cardinality(hll) 描述:计算hll的distinct值。 返回值类型:int 示例: 1 2 3 4 5 gaussdb=# SELECT hll_cardinality(hll_empty() || hll_hash_integer(1)); hll_cardinality ----------------- 1 (1 row) hll_union(hll, hll) 描述:把两个hll数据结构union成一个。 返回值类型:hll 示例: 1 2 3 4 5 gaussdb=# SELECT hll_union(hll_add(hll_empty(), hll_hash_integer(1)), hll_add(hll_empty(), hll_hash_integer(2))); hll_union -------------------------------------------------------------------------------------------- \x484c4c10002000002b090000000000000000400000000000000000b3ccc49320cca1ae3e2921ff133fbaed00 (1 row)
  • 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。 父主题: 系统视图
  • DBE_SQL_UTIL.create_hint_sql_patch create_hint_sql_patch是用于在当前建立连接的CN上创建调优SQL PATCH的接口函数,返回执行是否成功。 限制仅初始用户、sysadmin、opradmin、monadmin用户有权限调用。 CN之间SQL PATCH不共享,要在各个CN上单独创建。 开启负载均衡场景或者需要指定创建的CN的场景,推荐使用DBE_SQL_UTIL.create_remote_hint_sql_patch接口进行创建。 表1 DBE_SQL_UTIL.create_hint_sql_patch入参和返回值列表 参数 类型 描述 patch_name IN name PATCH名称。 unique_sql_id IN bigint 查询全局唯一ID。 hint_string IN text Hint文本。 description IN text PATCH的备注,默认值为NULL。 enabled IN bool PATCH是否生效,默认值为true。 result OUT bool 执行是否成功。 父主题: DBE_SQL_UTIL Schema
  • Database Stat Database Stat列名称及描述如下表所示。 表1 Database Stat报表主要内容 列名称 描述 DB Name 数据库名称。 Backends 连接到该数据库的后端数。 Xact Commit 此数据库中已经提交的事务数。 Xact Rollback 此数据库中已经回滚的事务数。 Blks Read 在这个数据库中读取的磁盘块的数量。 Blks Hit 高速缓存中已经发现的磁盘块的次数。 Tuple Returned 顺序扫描的行数。 Tuple Fetched 随机扫描的行数。 Tuple Inserted 通过数据库查询插入的行数。 Tuple Updated 通过数据库查询更新的行数。 Tup Deleted 通过数据库查询删除的行数。 Conflicts 由于数据库恢复冲突取消的查询数量。 Temp Files 通过数据库查询创建的临时文件数量。 Temp Bytes 通过数据库查询写入临时文件的数据总量。 Deadlocks 在该数据库中检索的死锁数。 Blk Read Time 通过数据库后端读取数据文件块花费的时间,以毫秒计算。 Blk Write Time 通过数据库后端写入数据文件块花费的时间,以毫秒计算。 Stats Reset 重置当前状态统计的时间。 父主题: WDR报告信息介绍
  • GS_GET_CONTROL_GROUP_INFO GS_GET_CONTROL_GROUP_INFO视图显示所有的控制组信息。查询该视图需要sysadmin权限。 表1 GS_GET_CONTROL_GROUP_INFO字段 名称 类型 描述 group_name text 控制组的名称。 group_type text 控制组的类型。 GROUP_NONE:无分组。 GROUP_TOP:顶级分组。 GROUP_CLASS:该资源的类分组,不控制任何线程。 GROUP_BAKWD:后端线程控制组。 GROUP_DEFWD:默认控制组,仅控制该级别的查询线程。 GROUP_TSWD:每个用户的分时控制组,控制最底层的查询线程。 gid bigint 控制组ID。 classgid bigint Workload所属Class的控制组ID。 class text Class控制组。 group_workload text Workload控制组。 shares bigint 控制组分配的CPU资源配额。 limits bigint 控制组分配的CPU资源限额。 wdlevel bigint Workload控制组层级。 cpucores text 控制组使用的CPU核的信息。 nodegroup text node group的名称。 group_kind text node group的类型,取值包括i,n,v,e。 i:表示installation node group。 n:表示普通集群node group。 e:表示弹性集群。 父主题: 系统视图
  • 参数 表1 SQLFreeHandle参数 关键字 参数说明 HandleType SQLFreeHandle要释放的句柄类型。必须为下列值之一: SQL_HANDLE_ENV SQL_HANDLE_DBC SQL_HANDLE_STMT SQL_HANDLE_DESC 如果HandleType不是其中之一,SQLFreeHandle返回SQL_INVALID_HANDLE。 Handle 要释放的句柄。
共100000条