华为云用户手册

  • 注意事项 参数DEFAULT将在客户端和服务器之间默认执行源编码到目标编码之间的转换。要支持这个用法,需要定义双向转换,即从A到B和从B到A之间的转换。 创建转换需拥有函数的EXECUTE权限及目标模式的CREATE权限。 源编码和目标编码都不可以使用SQL_ASCII,因为在涉及SQL_ASCII “encoding”的情况下,服务器的行为是硬连接的。 使用DROP CONVERSION可以移除用户定义的转换。
  • 参数说明 DEFAULT DEFAULT子句表示这个转换是从源编码到目标编码的默认转换。在一个模式中对于每一个编码对,只应该有一个默认转换。 name 转换的名称,可以被模式限定。如果没有被模式限定,该转换被定义在当前模式中。在一个模式中,转换名称必须唯一。 source_encoding 源编码名称。 dest_encoding 目标编码名称。 function_name 被用来执行转换的函数。函数名可以被模式限定。如果没有,将在路径中查找该函数。 该函数必须具有以下格式: conv_proc( integer, -- 原编码ID integer, -- 目标编码ID cstring, -- 源字符串(空值终止的C字符串) internal, -- 目标(用一个空值终止的C字符串填充) integer, -- 源字符串长度 ) RETURNS void; 目前仅支持系统内部创建,用户无法创建。
  • 注意事项 只有数据库所有者或者被授予了数据库DROP权限的用户有权限执行DROP DATABASE命令,系统管理员默认拥有此权限。 不能对系统默认安装的三个数据库(POSTGRES、TEMPLATE0和TEMPLATE1)执行删除操作,系统做了保护。如果想查看当前服务中有哪几个数据库,可以用gsql的\l命令查看。 如果有用户正在与要删除的数据库连接,则删除操作失败。 不能在事务块中执行DROP DATABASE命令。 如果执行DROP DATABASE失败,事务回滚,需要再次执行一次DROP DATABASE IF EXISTS。 DROP DATABASE一旦执行将无法撤销,请谨慎使用。
  • 简介 对于隐式游标的操作,如定义、打开、取值及关闭操作,都由系统自动地完成,无需用户进行处理。用户只能通过隐式游标的相关属性,来完成相应的操作。在隐式游标的工作区中,所存放的数据是最新处理的一条SQL语句所包含的数据,与用户自定义的显式游标无关。 格式调用为: SQL% INSERT,UPDATE,DELETE,SELECT语句中不必明确定义游标。 兼容O模式下,GUC参数behavior_compat_options为compat_cursor时,隐式游标跨存储过程有效。
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 --删除员工表hr.staffs中某部门的所有员工,如果该部门中已没有员工,则在部门表hr.sections中删除该部门。 CREATE OR REPLACE PROCEDURE proc_cursor3() AS DECLARE V_DEPTNO NUMBER(4) := 100; BEGIN DELETE FROM hr.staffs WHERE section_ID = V_DEPTNO; --根据游标状态做进一步处理 IF SQL%NOTFOUND THEN DELETE FROM hr.sections_t1 WHERE section_ID = V_DEPTNO; END IF; END; / CALL proc_cursor3(); --删除存储过程和临时表 DROP PROCEDURE proc_cursor3;
  • Schema GaussDB的Schema如下表所示。 数据库禁止在提供功能接口的Schema下创建用户的业务数据,包括但不限于表、函数等(dbe_*, pkg_*)。 表1 GaussDB支持的Schema Schema名称 描述 db4ai 用于管理AI训练中不同版本的数据信息。 dbe_perf DBE_PERF Schema内视图主要用来诊断性能问题,也是WDR Snapshot的数据来源。数据库安装后,默认只有初始用户和监控管理员具有模式dbe_perf的权限,有权查看该模式下的视图和函数。 dbe_pldebugger 用于调试PL/SQL函数及存储过程。 snapshot 用于管理WDR snapshot的相关的数据信息,默认初始化用户或监控管理员用户可以访问。 sqladvisor 用于分布列推荐,集中式不可用。 sys 用于提供系统信息视图接口。 pg_catalog 用于维护系统的catalog信息,包含系统表和所有内置数据类型、函数、操作符。 pg_toast 用于存储大对象(系统内部使用)。 public 公共模式,用于存储公共对象。search_path参数缺省时,如果存在用户同名的模式则将创建的表(以及其他对象)默认创建到同名模式下,不存在用户同名模式则自动放入public模式。 pkg_service 用于管理package服务相关信息。 pkg_util 用于管理package工具相关信息。 dbe_raw 高级功能包dbe_raw,用于raw类型数据的转化、取子串、求长度等操作。 dbe_session 高级功能包dbe_session,用于设置指定属性的值(value),并支持用户查询校验。 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_pldeveloper 用户存储过程编译调试。 dbe_sql_util SQL运维功能,目前包含SQL Patch的运维接口。 Information Schema DBE_PERF Schema WDR Snapshot Schema DBE_PLDEBUGGER Schema DB4AI Schema DBE_PLDEVELOPER DBE_SQL_UTIL Schema
  • SQL Detail SQL Detail列名称及描述如下表所示。 表1 SQL Detail报表主要内容 列名称 描述 Unique SQL Id 归一化SQL ID。 Parent Unique SQL Id 父语句的归一化SQL ID,单独执行的语句该值为0。 User Name 用户名称。 Node Name 节点名称。Node模式下不显示该字段。 SQL Text 归一化SQL文本。 父主题: WDR报告信息介绍
  • num_internal_lock_partitions 参数说明:控制内部轻量级锁分区的个数。主要用于各类场景的性能调优。内容以关键字和数字的KV方式组织,各个不同类型锁之间以逗号隔开。先后顺序对设置结果不影响,例如“CLOG_PART=256,CSNLOG_PART=512”等同于“CSNLOG_PART=512,CLOG_PART=256”。重复设置同一关键字时,以最后一次设置为准,例如“CLOG_PART=256,CLOG_PART=2”,设置的结果为CLOG_PART=2。当没有设置关键字时,则为默认值,各类锁的使用描述和最大、最小、默认值如下。 CLOG_PART:CLOG文件控制器的个数,增大该值可以提高CLOG日志写入效率,提升事务提交性能,但是会增大内存使用;减小该值会减少相应内存使用,但可能使得CLOG日志写入冲突变大,影响性能。最小值为1,最大值为256。 CSNLOG_PART:CSNLOG文件控制器的个数,增大该值可以提高CSNLOG日志写入效率,提升事务提交性能,但是会增大内存使用;减小该值会减少相应内存使用,但可能使得CSNLOG日志写入冲突变大,影响性能。最小值为1,最大值为512。 LOG2_LOCKTABLE_PART:常规锁表锁分区个数的2对数,增大该值可以提升正常流程常规锁获取锁的并行度,但是可能增加锁转移和锁消除时的耗时,对于等待事件在LockMgrLock时,可以调大该锁增加性能。最小值4,即锁分区数为16;最大值为16,即锁分区数为65536。 TWOPHASE_PART:两阶段事务锁的分区数,调大该值可以提高两阶段事务提交的并发数。最小值为1,最大值为64。 FASTPATH_PART:每个线程可以不通过主锁表拿锁的最大锁个数,对于分区表读取、更新、插入、删除操作且等待事件在LockMgrLock时,可以通过调大该值避免获取LockMgrLock提升性能,建议调整数量大于等于分区数*(1+本地索引数量)+全局索引数量+10,调大该值会额外增加内存。最小值为20,最大值为10000。 该参数属于POSTMASTER类型参数,参考表1中对应设置方法进行设置。 取值范围:字符串 默认值: 'CLOG_PART=256,CSNLOG_PART=512,LOG2_LOCKTABLE_PART=4,TWOPHASE_PART=1,FASTPATH_PART=20'(196核CPU/1536G内存,128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存,8核CPU/64G内存,4核CPU/32G内存);'CLOG_PART=8,CSNLOG_PART=16,LOG2_LOCKTABLE_PART=4,TWOPHASE_PART=1,FASTPATH_PART=20'(4核CPU/16G内存)
  • partition_lock_upgrade_timeout 参数说明:在执行某些查询语句的过程中,会需要将分区表上的锁级别由允许读的ExclusiveLock级别升级到读写阻塞的AccessExclusiveLock级别。如果此时已经存在并发的读事务,那么该锁升级操作将阻塞等待。partition_lock_upgrade_timeout为尝试锁升级的等待超时时间。 在分区表上进行MERGE PARTITION和CLUSTER PARTITION操作时,都利用了临时表进行数据重排和文件交换,为了最大程度提高分区上的操作并发度,在数据重排阶段给相关分区加锁ExclusiveLock,在文件交换阶段加锁AccessExclusiveLock。 常规加锁方式是等待加锁,直到加锁成功,或者等待时间超过lockwait_timeout发生超时失败。 在分区表上进行MERGE PARTITION或CLUSTER PARTITION操作时,进入文件交换阶段需要申请加锁AccessExclusiveLock,加锁方式是尝试性加锁,加锁成功了则立即返回,不成功则等待50ms后继续下次尝试,加锁超时时间使用会话级设置参数partition_lock_upgrade_timeout。 特殊值:若partition_lock_upgrade_timeout取值-1,表示无限等待,即不停的尝试锁升级,直到加锁成功。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,最小值-1,最大值3000,单位为秒(s)。 默认值:1800
  • max_pred_locks_per_transaction 参数说明:控制每个事务允许断定锁的最大数量,是一个平均值。 共享的断定锁表的大小是以假设任意时刻最多只有max_pred_locks_per_transaction*(max_connections+max_prepared_transactions) 个独立的对象需要被锁住为基础进行计算的。不超过设定数量的多个对象可以在任一时刻同时被锁定。当在一个事务里面修改很多不同的表时,可能需要提高这个默认数值。只能在服务器启动的时候设置。 增大这个参数可能导致GaussDB请求更多的System V共享内存,有可能超过操作系统的缺省配置。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,10 ~ INT_MAX 默认值:64
  • deadlock_timeout 参数说明:设置死锁超时检测时间,以毫秒为单位。当申请的锁超过设定值时,系统会检查是否产生了死锁。该参数仅针对常规锁生效。 死锁的检查代价是比较高的,服务器不会在每次等待锁的时候都运行这个过程。在系统运行过程中死锁是不经常出现的,因此在检查死锁前只需等待一个相对较短的时间。增加这个值就减少了无用的死锁检查浪费的时间,但是会减慢真正的死锁错误报告的速度。在一个负载过重的服务器上,用户可能需要增大它。这个值的设置应该超过事务持续时间,这样就可以减少在锁释放之前就开始死锁检查的问题。 当设置log_lock_waits为on时,deadlock_timeout决定一个等待时间来将查询执行过程中的锁等待耗时信息写入日志。如果要研究锁延时情况,可以设置deadlock_timeout的值比正常情况小。 该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,1~2147483647,单位为毫秒(ms)。 默认值:1s
  • max_locks_per_transaction 参数说明:控制每个事务能够得到的平均的对象锁的数量。 共享的锁表的大小是以假设任意时刻最多只有max_locks_per_transaction*(max_connections+max_prepared_transactions) 个独立的对象需要被锁住为基础进行计算的。不超过设定数量的多个对象可以在任一时刻同时被锁定。当在一个事务里面修改很多不同的表时,可能需要提高这个默认数值。只能在数据库启动的时候设置。 增大这个参数可能导致GaussDB请求更多的System V共享内存,有可能超过操作系统的缺省配置。 当运行备机时,请将此参数设置不小于主机上的值,否则,在备机上查询操作不会被允许。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,10 ~ INT_MAX 默认值: 256(196核CPU/1536G内存,128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存,8核CPU/64G内存,4核CPU/32G内存);64(4核CPU/16G内存)
  • 文本检索调试函数 ts_debug([ config regconfig, ] document text, OUT alias text, OUT description text, OUT token text, OUT dictionaries regdictionary[], OUT dictionary regdictionary, OUT lexemes text[]) 描述:测试一个配置。 返回类型:setof record 示例: 1 2 3 4 5 6 7 8 9 gaussdb=# SELECT ts_debug('english', 'The Brightest supernovaes'); ts_debug ----------------------------------------------------------------------------------- (asciiword,"Word, all ASCII",The,{english_stem},english_stem,{}) (blank,"Space symbols"," ",{},,) (asciiword,"Word, all ASCII",Brightest,{english_stem},english_stem,{brightest}) (blank,"Space symbols"," ",{},,) (asciiword,"Word, all ASCII",supernovaes,{english_stem},english_stem,{supernova}) (5 rows) ts_lexize(dict regdictionary, token text) 描述:测试一个数据字典。 返回类型:text[] 示例: 1 2 3 4 5 gaussdb=# SELECT ts_lexize('english_stem', 'stars'); ts_lexize ----------- {star} (1 row) ts_parse(parser_name text, document text, OUT tokid integer, OUT token text) 描述:测试一个解析。 返回类型:setof record 示例: 1 2 3 4 5 6 7 8 gaussdb=# SELECT ts_parse('default', 'foo - bar'); ts_parse ----------- (1,foo) (12," ") (12,"- ") (1,bar) (4 rows) ts_parse(parser_oid oid, document text, OUT tokid integer, OUT token text) 描述:测试一个解析。 返回类型:setof record 示例: 1 2 3 4 5 6 7 8 gaussdb=# SELECT ts_parse(3722, 'foo - bar'); ts_parse ----------- (1,foo) (12," ") (12,"- ") (1,bar) (4 rows) ts_token_type(parser_name text, OUT tokid integer, OUT alias text, OUT description text) 描述:获取分析器定义的记号类型。 返回类型:setof record 示例: 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 gaussdb=# SELECT ts_token_type('default'); ts_token_type -------------------------------------------------------------- (1,asciiword,"Word, all ASCII") (2,word,"Word, all letters") (3,numword,"Word, letters and digits") (4,email,"Email address") (5,url,URL) (6,host,Host) (7,sfloat,"Scientific notation") (8,version,"Version number") (9,hword_numpart,"Hyphenated word part, letters and digits") (10,hword_part,"Hyphenated word part, all letters") (11,hword_asciipart,"Hyphenated word part, all ASCII") (12,blank,"Space symbols") (13,tag,"XML tag") (14,protocol,"Protocol head") (15,numhword,"Hyphenated word, letters and digits") (16,asciihword,"Hyphenated word, all ASCII") (17,hword,"Hyphenated word, all letters") (18,url_path,"URL path") (19,file,"File or path name") (20,float,"Decimal notation") (21,int,"Signed integer") (22,uint,"Unsigned integer") (23,entity,"XML entity") (23 rows) ts_token_type(parser_oid oid, OUT tokid integer, OUT alias text, OUT description text) 描述:获取分析器定义的记号类型。 返回类型:setof record 示例: 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 gaussdb=# SELECT ts_token_type(3722); ts_token_type -------------------------------------------------------------- (1,asciiword,"Word, all ASCII") (2,word,"Word, all letters") (3,numword,"Word, letters and digits") (4,email,"Email address") (5,url,URL) (6,host,Host) (7,sfloat,"Scientific notation") (8,version,"Version number") (9,hword_numpart,"Hyphenated word part, letters and digits") (10,hword_part,"Hyphenated word part, all letters") (11,hword_asciipart,"Hyphenated word part, all ASCII") (12,blank,"Space symbols") (13,tag,"XML tag") (14,protocol,"Protocol head") (15,numhword,"Hyphenated word, letters and digits") (16,asciihword,"Hyphenated word, all ASCII") (17,hword,"Hyphenated word, all letters") (18,url_path,"URL path") (19,file,"File or path name") (20,float,"Decimal notation") (21,int,"Signed integer") (22,uint,"Unsigned integer") (23,entity,"XML entity") (23 rows) ts_stat(sqlquery text, [ weights text, ] OUT word text, OUT ndoc integer, OUT nentry integer) 描述:获取tsvector列的统计数据。 返回类型:setof record 示例: 1 2 3 4 5 6 gaussdb=# SELECT ts_stat('select ''hello world''::tsvector'); ts_stat ------------- (world,1,1) (hello,1,1) (2 rows)
  • GLOBAL_STAT_SYS_INDEXES 显示数据库各节点pg_catalog、information_schema以及pg_toast模式中所有系统表的索引状态信息(不同节点数据不汇总求和)。 表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
  • GLOBAL_STAT_USER_TABLES 显示数据库各节点所有Schema中用户自定义普通表的状态信息(不汇总)。 表1 GLOBAL_STAT_USER_TABLES字段 名称 类型 描述 node_name name 节点名称。 relid oid 表的OID。 schemaname name 此表所在的Schema名。 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更新行数(即没有更新索引列的行数)。 n_live_tup bigint 估计活跃行数。 n_dead_tup bigint 估计不活跃行数。 last_vacuum timestamp with time zone 最后一次此表是手动清理的(不计算VACUUM FULL)时间。 last_autovacuum timestamp with time zone 上次被autovacuum守护线程清理的时间。 last_analyze timestamp with time zone 上次手动分析这个表的时间。 last_autoanalyze timestamp with time zone 上次被autovacuum守护线程分析的时间。 vacuum_count bigint 这个表被手动清理的次数(不计算VACUUM FULL)。 autovacuum_count bigint 这个表被autovacuum清理的次数。 analyze_count bigint 这个表被手动分析的次数。 autoanalyze_count bigint 这个表被autovacuum守护线程分析的次数。 父主题: Object
  • 参数说明 cursor_name 将要创建的游标名。 取值范围:遵循数据库对象命名规范。 BINARY 指明游标以二进制而不是文本格式返回数据。 NO SCROLL 声明游标检索数据行的方式。 NO SCROLL:声明该游标不能用于以倒序的方式检索数据行。 未声明:根据执行计划的不同,自动判断该游标是否可以用于以倒序的方式检索数据行。 WITH HOLD WITHOUT HOLD 声明当创建游标的事务结束后,游标是否能继续使用。 WITH HOLD:声明该游标在创建它的事务结束后仍可继续使用。 WITHOUT HOLD:声明该游标在创建它的事务之外不能再继续使用,此游标将在事务结束时被自动关闭。 如果不指定WITH HOLD或WITHOUT HOLD,默认行为是WITHOUT HOLD。 声明为WITH HOLD的游标,在事务结束时,会缓存游标所有数据,若游标数据量较大,此过程耗时可能较长。 query 使用SELECT或VALUES子句指定游标返回的行。 取值范围:SELECT或VALUES子句。 declare_statements 声明变量,包括变量名和变量类型,如“sales_cnt int”。 execution_statements 匿名块中要执行的语句。 取值范围:已存在的函数名称。
  • 功能描述 DECLARE命令既可以定义一个游标,用于在一个大的查询里面检索少数几行数据,也可以作为一个匿名块的开始。 本节主要描述定义为游标的用法,开启匿名块的用法见BEGIN。 为了处理SQL语句,存储过程进程分配一段内存区域来保存上下文联系。游标是指向上下文区域的句柄或指针。借助游标,存储过程可以控制上下文区域的变化。 通常游标和SELECT一样返回文本格式。因为数据在系统内部是用二进制格式存储的,系统必须对数据做一定转换以生成文本格式。一旦数据是以文本形式返回,客户端应用需要把它们转换成二进制进行操作。使用FETCH语句,游标可以返回文本或二进制格式。
  • 注意事项 状态可以是多个值之一。但是,在异步连接过程之外只能看到其中两个:CONNECTION_OK和CONNECTION_BAD。与数据库的良好连接状态为CONNECTION_OK,与数据库连接失败状态为CONNECTION_BAD。通常,“正常”状态将一直保持到PQfinish,但通信失败可能会导致状态CONNECTION_BAD过早变为。在这种情况下,应用程序可以尝试通过调用进行恢复PQreset。
  • 返回值 ConnStatusType:连接状态的枚举,包括: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 CONNECTION_STARTED 等待进行连接。 CONNECTION_MADE 连接成功;等待发送。 CONNECTION_AWAITING_RESPONSE 等待来自服务器的响应。 CONNECTION_AUTH_OK 已收到认证;等待后端启动结束。 CONNECTION_SSL_STARTUP 协商SSL加密。 CONNECTION_SETENV 协商环境驱动的参数设置。 CONNECTION_OK 连接正常。 CONNECTION_BAD 连接故障。
  • PG_STAT_DATABASE_CONFLICTS PG_STAT_DATABASE_CONFLICTS视图显示数据库冲突状态的统计信息。 表1 PG_STAT_DATABASE_CONFLICTS字段 名称 类型 描述 datid oid 数据库标识。 datname name 数据库名称。 confl_tablespace bigint 冲突的表空间的数目。 confl_lock bigint 冲突的锁数目。 confl_snapshot bigint 冲突的快照数目。 confl_bufferpin bigint 冲突的缓冲区数目。 confl_deadlock bigint 冲突的死锁数目。 父主题: 系统视图
  • DB_IND_COLUMNS DB_IND_COLUMNS视图存储了当前用户可访问的所有索引的字段信息。该视图同时存在于PG_CATALOG和SYS schema下。 表1 DB_IND_COLUMNS字段 名称 类型 描述 index_owner character varying(64) 索引的所有者。 index_name character varying(64) 索引名。 table_owner character varying(64) 表的所有者。 table_name character varying(64) 表名。 column_name name 列名。 column_position smallint 索引中列的位置。 column_length numeric 列的长度。 char_length numeric 列的长度(字符类型)。 descend character varying(4) 列的排序方式:降序(DESC)、升序(ASC)。 collated_column_id numeric 此列提供语言排序的列的内部序列号。 父主题: 系统视图
  • PG_USER_MAPPING PG_USER_MAPPING系统表存储从本地用户到远程的映射。 需要有系统管理员权限才可以访问此系统表。普通用户可以使用视图PG_USER_MAPPINGS进行查询。 表1 PG_USER_MAPPING字段 名称 类型 引用 描述 oid oid - 行标识符(隐含属性,必须明确选择)。 umuser oid PG_AUTHID.oid 被映射的本地用户的OID,如果用户映射是公共的则为0。 umserver oid PG_FOREIGN_SERVER.oid 包含这个映射的外部服务器的OID。 umoptions text[] - 用户映射指定选项,使用“keyword=value”格式的字符串。 父主题: 系统表
  • ADM_TAB_COLS ADM_TAB_COLS视图显示表和视图列的相关信息。数据库中每个表和视图的每一个字段在ADM_TAB_COLS里有一行对应的数据。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。该视图与ADM_TAB_COLUMNS视图显示行数相同,仅存在字段差异。 表1 ADM_TAB_COLS字段 名称 类型 描述 owner character varying(64) 表或视图的所有者。 table_name character varying(128) 表或视图的名称。 column_name character varying(128) 列名。 data_type character varying(128) 列的数据类型,可以是用户自定义的数据类型。 data_type_mod character varying(3) 暂不支持,值为NULL。 data_type_owner character varying(128) 列的数据类型的所有者。 data_length numeric 列的字节长度。 data_precision numeric 数据类型的精度,对于numeric数据类型有效,其他类型为NULL。 data_scale numeric 小数点右边的位数,对于numeric数据类型有效,其他类型为0。 nullable character varying(1) 该列是否允许为空,对于主键约束和非空约束,该值为n。 column_id numeric 创建表时列的序号。 default_length numeric 列的默认值字节长度。 data_default text 列的默认值。 num_distinct numeric 列中不同值的数量。 low_value raw 列中的最小值。 high_value raw 列中的最大值。 density numeric 列密度。 num_nulls numeric 列中空值数。 num_buckets numeric 列的直方图的桶数。 last_analyzed timestamp(0) without time zone 上次分析的日期。 sample_size numeric 用于分析此列的样本量。 character_set_name character varying(44) 暂不支持,值为NULL。 char_col_decl_length numeric 字符类型列的声明长度。 global_stats character varying(3) 暂不支持,值为NO。 user_stats character varying(3) 暂不支持,值为NO。 avg_col_len numeric 列的平均长度(单位字节)。 char_length numeric 列的长度(以字符计),只对varchar,nvarchar2,bpchar,char类型有效。 char_used character varying(1) 暂不支持,varchar,nvarchar2,bpchar,char类型置B,其余值为空。 v80_fmt_image character varying(3) 暂不支持,值为NULL。 data_upgraded character varying(3) 暂不支持,值为YES。 hidden_column character varying(3) 暂不支持,值为NULL。 virtual_column character varying 指示列是否为虚拟列(即生成列): YES:表示是。 NO:表示不是。 segment_column_id numeric 暂不支持,值为NULL。 internal_column_id numeric 列的内部序列号,内容同COLUMN_ID。 histogram character varying(15) 直方图类型: NONE:表示不存在直方图。 FREQUENCY:表示频率直方图。 EQUI_WIDTH:表示等宽直方图。 qualified_col_name character varying(64) 限定列名,同COLUMN_NAME。 user_generated character varying(3) 暂不支持,值为YES。 default_on_null character varying(3) 暂不支持,值为NULL。 identity_column character varying(3) 暂不支持,值为NULL。 sensitive_column character varying(3) 暂不支持,值为NULL。 evaluation_edition character varying(128) 暂不支持,值为NULL。 unusable_before character varying(128) 暂不支持,值为NULL。 unusable_beginning character varying(128) 暂不支持,值为NULL。 collation character varying(100) 列的排序规则。因该字段与保留关键字冲突,调用该字段需加视图名。 collated_column_id numeric 暂不支持,值为NULL。 schema character varying(64) 列所属的名称空间的名称。 父主题: 系统视图
  • STATEMENT 获得当前节点的执行语句(归一化SQL)的信息。数据库主节点上可以看到此数据库主节点接收到的归一化的SQL的全量统计信息(包含数据库节点);数据库节点上仅可看到归一化的SQL的此节点执行的统计信息。 不同的savepoint_name所生成的unique_sql_id不同,大量使用savepoint_name时会导致系统中产生的unique_sql_id信息快速上涨,若unique_sql_id数量高于instr_unique_sql_count数量时,新产生的unique_sql_id信息将不被统计。 表1 STATEMENT字段 名称 类型 描述 node_name name 数据库进程名称。 node_id integer 节点的ID。 user_name name 用户名称。 user_id oid 用户OID。 unique_sql_id bigint 归一化的SQL ID。 query text 归一化的SQL。 备注:长度受track_activity_query_size控制。 n_calls bigint 调用次数。 min_elapse_time bigint SQL在内核内的最小运行时间(单位:微秒)。 max_elapse_time bigint SQL在内核内的最大运行时间(单位:微秒)。 total_elapse_time bigint SQL在内核内的总运行时间(单位:微秒)。 n_returned_rows bigint SELECT返回的结果集行数。 n_tuples_fetched bigint 随机扫描行。 n_tuples_returned bigint 顺序扫描行。 n_tuples_inserted bigint 插入行。 n_tuples_updated bigint 更新行。 n_tuples_deleted bigint 删除行。 n_blocks_fetched bigint buffer的块访问次数。 n_blocks_hit bigint buffer的块命中次数。 n_soft_parse bigint 软解析次数,n_soft_parse + n_hard_parse可能大于n_calls,因为子查询未计入n_calls。 n_hard_parse bigint 硬解析次数,n_soft_parse + n_hard_parse可能大于n_calls,因为子查询未计入n_calls。 db_time bigint 有效的DB时间花费,多线程将累加(单位:微秒)。 cpu_time bigint CPU时间(单位:微秒)。 execution_time bigint 执行器内执行时间(单位:微秒)。 parse_time bigint SQL解析时间(单位:微秒)。 plan_time bigint SQL生成计划时间(单位:微秒)。 rewrite_time bigint SQL重写时间(单位:微秒)。 pl_execution_time bigint plpgsql上的执行时间(单位:微秒)。 pl_compilation_time bigint plpgsql上的编译时间(单位:微秒)。 data_io_time bigint IO上的时间花费(单位:微秒)。 net_send_info text 通过物理连接发送消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。单机模式下不支持该字段。 net_recv_info text 通过物理连接接收消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。单机模式下不支持该字段。 net_stream_send_info text 通过逻辑连接发送消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。单机模式下不支持该字段。 net_stream_recv_info text 通过逻辑连接接收消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。单机模式下不支持该字段。 last_updated timestamp with time zone 最后一次更新该语句的时间。 sort_count bigint 排序执行的次数。 sort_time bigint 排序执行的时间(单位:微秒)。 sort_mem_used bigint 排序过程中使用的work memory大小(单位:KB)。 sort_spill_count bigint 排序过程中,若发生落盘,写文件的次数。 sort_spill_size bigint 排序过程中,若发生落盘,使用的文件大小(单位:KB)。 hash_count bigint hash执行的次数。 hash_time bigint hash执行的时间(单位:微秒)。 hash_mem_used bigint hash过程中使用的work memory大小(单位:KB)。 hash_spill_count bigint hash过程中,若发生落盘,写文件的次数。 hash_spill_size bigint hash过程中,若发生落盘,使用的文件大小(单位:KB)。 parent_unique_sql_id bigint 父语句的unique_sql_id,非存储过程子语句该值为0。 n_calls表示实际调用次数,对于存储过程内的fetch语句,fetch语句的实际触发次数,对应该cursor实际执行的语句的n_calls的增加次数。 父主题: Query
  • service_reserved_connections 参数说明:为后台运维用户(带有persistence属性)预留的最少连接数,不建议设置过大。该参数和max_connections参数配合使用,运维用户的最大连接数等于max_connections + service_reserved_connections。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,最小值为0,最大值为262143。 默认值:10 注意:如果设置过小,会导致在max_connections满的情况下,该运维用户(带有persistence属性)无法连接数据库,作业无法正常执行。
  • unix_socket_directory 参数说明:设置GaussDB服务器侦听客户端连接的Unix域套接字目录。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 该参数的长度限制于操作系统的长度,超过该限制将会导致Unix-domain socket path "xxx" is too long的问题。 取值范围:字符串 默认值:空字符串(实际值由安装时配置文件指定)
  • sysadmin_reserved_connections 参数说明:为管理员用户预留的最少连接数,不建议设置过大。该参数和max_connections参数配合使用,管理员用户的最大连接数等于max_connections + sysadmin_reserved_connections。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,最小值为0,最大值为MIN(262143, max_connections),max_connections的计算方法见上文。 默认值:3 注意:当启用线程池功能时,若线程池占满将形成处理瓶颈,导致管理员预留连接无法正常建立;作为逃生手段,此时可使用gsql通过主端口+1端口号连入,清理无用会话,即可正常连入。
  • application_name 参数说明:当前连接请求当中,所使用的客户端名称。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 在备机请求主机进行日志复制时,如果该参数非空串,那么会被用来作为备机在主机上的流复制槽名字。此时,如果该参数长度超过61个字节,那么流复制槽名字只会截取使用前61个字节的字符。 取值范围:字符串。 默认值:空字符串(连接到后端的应用名,以实际安装为准)
  • max_inner_tool_connections 参数说明:允许和数据库连接的工具的最大并发连接数。此参数会影响GaussDB的工具连接并发能力。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,最小值为1,最大值为MIN(262143, max_connections),max_connections的计算方法见上文。 默认值: 50(196核CPU/1536G内存,128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,80核CPU/640G内存,64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存,8核CPU/64G内存,4核CPU/32G内存);10(4核CPU/16G内存) 如果该默认值超过内核支持的最大值(在执行gs_initdb的时候判断),系统会提示错误。 设置建议: 数据库主节点中此参数建议保持默认值。 增大此参数可能导致GaussDB要求更多的SystemV共享内存或者信号量,可能超过操作系统缺省配置的最大值。这种情况下,请酌情对数值加以调整。
  • unix_socket_permissions 参数说明:设置Unix域套接字的访问权限。 Unix域套接字使用普通的Unix文件系统权限集。这个参数的值应该是数值的格式(chmod和umask命令可接受的格式)。如果使用自定义的八进制格式,数字必须以0开头。 建议设置为0770(只有当前连接数据库的用户和同组的人可以访问)或者0700(只有当前连接数据库的用户自己可以访问,同组或者其他人都没有权限)。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:0000-0777 默认值:0700 在Linux中,文档具有十个属性,其中第一个属性为文档类型,后面九个为权限属性,分别为Owner,Group及Others这三个组别的read、write、execute属性。 文档的权限属性分别简写为r,w,x,这九个属性三个为一组,也可以使用数字来表示文档的权限,对照表如下: r:4 w: 2 x:1 -:0 同一组(owner/group/others)的三个属性是累加的。 例如,-rwxrwx---表示这个文档的权限为: owner = rwx = 4+2+1 = 7 group = rwx = 4+2+1 = 7 others = --- = 0+0+0 = 0 所以其权限为0770。
共100000条