华为云用户手册

  • 参数说明 SESSION 声明这个命令只对当前会话起作用。 LOCAL 声明该命令只在当前事务中有效。 role_name 用户名。 取值范围:字符串,要符合标识符命名规范。 password 角色的密码。要求符合密码的命名规则。 使用密文密码限制如下: 管理员用户不能使用密文密码切换到其他管理员用户,只能向权限更低用户切换。 使用密文密码通常用于gs_dump、gs_dumpall导出场景,其他场景不建议直接使用密文密码。 DEFAULT 重置会话和当前用户标识符为初始认证的用户名。
  • 语法格式 为当前会话设置会话用户标识符和当前用户标识符。 SET [ SESSION | LOCAL ] SESSION AUTHORIZATION role_name PASSWORD 'password'; 重置会话和当前用户标识符为初始认证的用户名。 {SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT | RESET SESSION AUTHORIZATION};
  • SUMMARY_STAT_XACT_ALL_TABLES 显示数据库各节点所有Schema中所有普通表和toast表的事务状态信息的汇总求和结果。 表1 SUMMARY_STAT_XACT_ALL_TABLES字段 名称 类型 描述 schemaname name 此表所在的Schema名。 relname name 表名。 seq_scan numeric 此表发起的顺序扫描数。 seq_tup_read numeric 顺序扫描抓取的活跃行数。 idx_scan numeric 此表发起的索引扫描数。 idx_tup_fetch numeric 索引扫描抓取的活跃行数。 n_tup_ins numeric 插入行数。 n_tup_upd numeric 更新行数。 n_tup_del numeric 删除行数。 n_tup_hot_upd numeric HOT更新行数(即没有更新索引列的行数)。 父主题: Object
  • SUMMARY_STATEMENT 获得各数据库主节点的执行语句(归一化SQL)的全量信息(包含数据库节点)。 当前版本暂不支持对FOR UPDATE关键字进行识别并归一化处理。例如:SELECT * FROM table; 与SELECT * FROM table FOR UPDATE WAIT N; 会被归一化处理为相同的归一化SQL,在query字段中体现。 表1 SUMMARY_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_hard_parse bigint 硬解析次数。 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 I/O上的时间花费(单位:微秒)。 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。 父主题: Query
  • 子查询 【规则】禁止一条SQL语句中,出现重复子查询语句。 【建议】少用标量子查询。 标量子查询指结果为一个值,并且条件表达式为等值的子查询。示例如下: 不符合规范的语句 SELECT * FROM t1 WHERE id = (SELECT id FROM t2 LIMIT 1); 上述语句建议业务拆分为两条SQL语句,先执行子查询。 【建议】避免在SELECT目标列中使用子查询,可能导致计划无法下推影响执行性能。 【建议】子查询嵌套深度不建议超过两层。 由于子查询会带来临时表开销,过于复杂的查询应考虑从业务逻辑上进行优化。 父主题: 数据库编程规范
  • PG_AM PG_AM系统表存储有关索引访问方法的信息。系统支持的每种索引访问方法都有一行。 表1 PG_AM字段 名称 类型 引用 描述 oid oid - 行标识符(隐含属性,必须明确选择)。 amname name - 访问方法的名称。 amstrategies smallint - 访问方法的操作符策略个数,或者如果访问方法没有一个固定的操作符策略集则为0。 amsupport smallint - 访问方法的支持过程个数。 amcanorder boolean - 这种访问方式是否支持通过索引字段值的命令扫描排序。 amcanorderbyop boolean - 这种访问方式是否支持通过索引字段上操作符的结果的命令扫描排序。 amcanbackward boolean - 访问方式是否支持向后扫描。 amcanunique boolean - 访问方式是否支持唯一索引。 amcanmulticol boolean - 访问方式是否支持多字段索引。 amoptionalkey boolean - 访问方式是否支持第一个索引字段上没有任何约束的扫描。 amsearcharray boolean - 访问方式是否支持ScalarArrayOpExpr搜索。 amsearchnulls boolean - 访问方式是否支持IS NULL/NOT NULL搜索。 amstorage boolean - 是否允许索引存储的数据类型与列的数据类型不同。 amclusterable boolean - 是否允许在一个这种类型的索引上聚簇。 ampredlocks boolean - 是否允许这种类型的一个索引管理细粒度的谓词锁定。 amkeytype oid PG_TYPE.oid 存储在索引里数据的类型,如果不是一个固定的类型则为0。 aminsert regproc PG_PROC.proname “插入这个行”函数。 ambeginscan regproc PG_PROC.proname “准备索引扫描”函数。 amgettuple regproc PG_PROC.proname “下一个有效行”函数,如果没有则为0。 amgetbitmap regproc PG_PROC.proname “抓取所有的有效行” 函数,如果没有则为0。 amrescan regproc PG_PROC.proname “(重新)开始索引扫描”函数。 amendscan regproc PG_PROC.proname “索引扫描后清理” 函数。 ammarkpos regproc PG_PROC.proname “标记当前扫描位置”函数。 amrestrpos regproc PG_PROC.proname “恢复已标记的扫描位置”函数。 ammerge regproc PG_PROC.proname “归并多个索引对象”函数。 ambuild regproc PG_PROC.proname “建立新索引”函数。 ambuildempty regproc PG_PROC.proname “建立空索引”函数。 ambulkdelete regproc PG_PROC.proname 批量删除函数。 amvacuumcleanup regproc PG_PROC.proname VACUUM后的清理函数。 amcanreturn regproc PG_PROC.proname 检查是否索引支持唯一索引扫描的函数,如果没有则为0。 amcostestimate regproc PG_PROC.proname 估计一个索引扫描开销的函数。 amoptions regproc PG_PROC.proname 为一个索引分析和确认reloptions的函数。 父主题: 系统表
  • 开发流程 数据库Go驱动遵循Go语言第三方库的规则,只需在应用程序中import驱动,并将驱动代码放入GOPATH路径。 图1 采用Go开发应用程序的流程图 根据图1,Go驱动应用开发流程依赖于Go原生的database/sql包和 GaussDB 开发的driver驱动,database/sql包提供用户使用的标准接口,GaussDB实现需要被database/sql包调用的接口。 父主题: 基于Go驱动开发
  • DBE_PLDEBUGGER.info_locals debug端调试过程中,调用info_locals,打印当前存储过程内变量。该函数入参frameno表示查询遍历的栈层数,支持无入参调用,缺省为查看最上层栈变量。 表1 info_locals入参和返回值列表 名称 类型 描述 frameno IN integer (可选) 指定的栈层数,缺省为最顶层 varname OUT text 变量名 vartype OUT text 变量类型 value OUT text 变量值 package_name OUT text 变量对应的package名,非package时为空 isconst OUT boolean 是否为常量 父主题: DBE_PLDEBUGGER Schema
  • unix_socket_directory 参数说明:设置GaussDB服务器侦听客户端连接的Unix域套接字目录。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 该参数的长度限制于操作系统的长度,超过该限制将会导致Unix-domain socket path "xxx" is too long的问题。 取值范围:字符串 默认值:空字符串(实际值由安装时配置文件指定)
  • service_reserved_connections 参数说明:为后台运维用户(带有persistence属性)预留的最少连接数,不建议设置过大。该参数和max_connections参数配合使用,运维用户的最大连接数等于max_connections + service_reserved_connections。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,最小值为0,最大值为262143。 默认值:10 注意:如果设置过小,会导致在max_connections满的情况下,该运维用户(带有persistence属性)无法连接数据库,作业无法正常执行。
  • 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。
  • application_name 参数说明:当前连接请求当中,所使用的客户端名称。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 在备机请求主机进行日志复制时,如果该参数非空串,那么会被用来作为备机在主机上的流复制槽名字。此时,如果该参数长度超过61个字节,那么流复制槽名字只会截取使用前61个字节的字符。 取值范围:字符串。 默认值:空字符串(连接到后端的应用名,以实际安装为准)
  • listen_addresses 参数说明:声明服务器侦听客户端的TCP/IP地址。 该参数指定GaussDB服务器使用哪些IP地址进行侦听,如IPV4。服务器主机上可能存在多个网卡,每个网卡可以绑定多个IP地址,该参数就是控制GaussDB绑定在哪个或者哪几个IP地址上。而客户端则可以通过该参数中指定的IP地址来连接GaussDB或者给GaussDB发送请求。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围: 主机名或IP地址,多个值之间用英文逗号分隔。 星号“*”或“0.0.0.0”表示侦听所有IP地址。配置侦听所有IP地址存在安全风险,不推荐用户使用。必须与有效地址结合使用(比如本地IP等),否则,可能造成Build失败的问题。同时,主备环境下配置为“\*”或“0.0.0.0”时,主节点数据库路径下postgresql.conf文件中的localport端口号不能为数据库dataPortBase+1,否则会导致数据库无法启动。 当该参数值非法时(如包含非法IP、非法字符,参数值为空,或重复侦听),进程将启动失败。 默认值:数据库实例安装好后,根据public_cloud.conf配置文件中不同实例的IP地址配置不同默认值。DN的默认参数值为:listen_addresses = 'data.net网卡对应的IP地址'。 public_cloud.conf文件保存的网卡信息,包括:mgr.net(管理网卡)、data.net(数据网卡)、virtual.net(虚拟网卡)。 支持gs_guc reload方式进行设置该参数值,GaussDB内核会按照“侦听新IP、保留重复IP的侦听、关闭无效IP侦听”的策略,动态侦听该参数配置的IP。若存在非法IP(如本机未配置此IP、无效的IP值、该IP已被侦听等)时,内核侦听IP失败,此时会出现listen_addresses设置值和实际侦听IP的状况不匹配。 若通过gs_guc reload方式设置参数值,且参数值中均为非法IP时,侦听新IP失败,同时会取消全部旧IP的侦听。若参数为空时,直接拦截而保持旧IP侦听。 若在进程启动参数中配置listen_addresses后,该参数将强制指定为设置值而不会被reload修改。 若设置新参数值和已设置旧参数值相同时,将不再进行侦听动作。故设置listen_addresses参数值且列表中某非法IP时,内核侦听此IP失败;待IP变为合法后,再次设置相同参数值,由于前后两次参数值相同,则不会侦听此IP。此时需通过gs_guc reload方式将此IP从参数值中去除,并再次设置添加该IP,才会成功侦听。 通过gs_guc reload方式刷新该参数后,若不再侦听某IP后,需再执行gs_validate_ext_listen_ip函数进行清理连接操作,具体入参及执行详见该函数说明。 禁止gs_guc工具通过"-N all"方式reload刷新所有DN的listen_addresses参数值,仅允许单DN设置。 动态修改listen_addresses属于高危操作,若配置有误可能导致数据库无法接受新连接,进而影响业务,请谨慎操作。
  • port 参数说明:GaussDB服务侦听的TCP端口号。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 该参数由安装时的配置文件指定,请勿轻易修改,否则修改后会影响数据库正常通信。 取值范围:整型,1~65535 设置端口号时,请设置一个未被占用的端口号。设置多个实例的端口号,不可冲突。 1~1023为操作系统保留端口号,请不要使用。 通过配置文件安装数据库实例时,配置文件中的端口号需要注意通信矩阵预留端口。如:DN还需保留dataPortBase+1作为内部工具使用端口,保留dataPortBase+6作为流引擎(由于规格变更,当前版本已经不再支持本特性,请不要使用)消息队列通信端口等。故数据库实例安装阶段,port最大值为:DN可设置65529,同时需要保证端口号不冲突。 默认值:5432(实际值由安装时的配置文件指定)
  • 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共享内存或者信号量,可能超过操作系统缺省配置的最大值。这种情况下,请酌情对数值加以调整。
  • local_bind_address 参数说明:声明当前节点连接数据库其他节点绑定的本地IP地址。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 默认值:数据库实例安装好后,根据public_cloud.conf配置文件中不同实例的IP地址配置不同默认值。DN的默认参数值为:local_bind_address = 'data.net网卡对应的IP地址'。 public_cloud.conf文件保存的网卡信息,包括:mgr.net(管理网卡)、data.net(数据网卡)、virtual.net(虚拟网卡)
  • sysadmin_reserved_connections 参数说明:为管理员用户预留的最少连接数,不建议设置过大。该参数和max_connections参数配合使用,管理员用户的最大连接数等于max_connections + sysadmin_reserved_connections。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,最小值为0,最大值为MIN(262143, max_connections),max_connections的计算方法见上文。 默认值:3 注意:当启用线程池功能时,若线程池占满将形成处理瓶颈,导致管理员预留连接无法正常建立;作为逃生手段,此时可使用gsql通过主端口+1端口号连入,清理无用会话,即可正常连入。
  • DB_SCHEDULER_JOB_ARGS DB_SCHEDULER_JOB_ARG视图显示当前用户可访问任务的有关参数信息。该视图所有用户可访问,显示当前用户可访问的所有信息。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 DB_SCHEDULER_JOB_ARGS字段 名称 类型 描述 owner character varying(128) 参数所属作业的拥有者。 job_name character varying(128) 参数所属作业名。 argument_name character varying(128) 参数名称。 argument_position numeric 参数在参数列表中的位置。 argument_type character varying(257) 参数的数据类型,可以是用户的自定义数据类型。 value character varying(4000) 参数值。 anydata_value character varying(4000) 暂不支持,值为NULL。 out_argument character varying(5) 保留字段,值为NULL。 父主题: 系统视图
  • GS_ALL_PREPARED_STATEMENTS GS_ALL_PREPARED_STATEMENTS视图显示所有会话中可用的预备语句的信息。默认只有系统管理员权限才可以访问此视图。 表1 GS_ALL_PREPARED_STATEMENTS字段 名称 类型 描述 pid bigint 后台线程ID。 说明: 线程池模式下pid显示的是当前会话绑定的线程ID,当会话在不同线程上执行时pid会随之改变。线程池模式下statement与sessionid相关联,与pid无关联,关联查询时建议使用sessionid。 sessionid bigint 当前会话ID。 global_sessionid text 全局会话ID。 name text 预备语句的标识符。 statement text 创建该预备语句的查询字符串。 对于从SQL创建的预备语句而言是客户端提交的PREPARE语句。 对于通过前/后端协议创建的预备语句而言是预备语句自身的文本。 prepare_time timestamp with time zone 创建该预备语句的时间戳。 parameter_types regtype[] 该预备语句期望的参数类型,以regtype类型的数组格式出现。与该数组元素相对应的OID可以通过把regtype转换为OID值得到。 from_sql boolean 如果该预备语句是通过PREPARE语句创建的则为true。 如果是通过前/后端协议创建的则为false。 父主题: 系统视图
  • 典型场景 查询某个表中的特定行:当查询语句中包含WHERE子句时,如果WHERE子句中的条件可以通过索引列进行匹配,那么GaussDB就可能会使用Index Scan来查找符合条件的行。 排序:当查询语句中包含ORDER BY子句时,如果ORDER BY子句中的列可以通过索引进行排序,那么GaussDB就可能会使用Index Scan来进行排序操作。 聚合:当查询语句中包含GROUP BY子句时,如果GROUP BY子句中的列可以通过索引进行分组,那么GaussDB就可能会使用Index Scan来进行聚合操作。 连接:当查询语句中包含JOIN操作时,如果JOIN操作中的列可以通过索引进行匹配,那么GaussDB就可能会使用Index Scan来进行连接操作。
  • 算子说明 在索引扫描中,数据库使用语句指定的索引列,通过遍历索引树来检索行。数据库为一个值扫描索引时,发生 n 次 I/O 就能找到其要查找的值,其中 n 即 B-tree索引的高度。Index Scan通常用于检索表数据,数据库以轮流方式先读取索引块,找到对应的索引键值,然后通过索引键对应的tid去读取相应的表元组。在数据量大,但是查询结果集较小的场景下,Index Scan的效率往往高于Seq Scan。
  • 示例 --创建一个普通表。 gaussdb=# CREATE TABLE my_table (c1 int, c2 int) WITH(STORAGE_TYPE=ASTORE); --创建增量物化视图。 gaussdb=# CREATE INCREMENTAL MATERIALIZED VIEW my_imv AS SELECT * FROM my_table; --基表写入数据。 gaussdb=# INSERT INTO my_table VALUES(1,1),(2,2); --对增量物化视图my_imv进行增量刷新。 gaussdb=# REFRESH INCREMENTAL MATERIALIZED VIEW my_imv; --删除增量物化视图。 gaussdb=# DROP MATERIALIZED VIEW my_imv; --删除普通表my_table。 gaussdb=# DROP TABLE my_table;
  • 参数说明 mv_name 要创建的物化视图的名称(可以被模式限定)。 取值范围:字符串,要符合标识符命名规范。 column_name 新物化视图中的一个列名。物化视图支持指定列,指定列需要和后面的查询语句结果的列数量保持一致;如果没有提供列名,会从查询的输出列名中获取列名。 取值范围:字符串,要符合标识符命名规范。 TABLESPACE tablespace_name 指定新建物化视图所属表空间。如果没有声明,将使用默认表空间。 AS query 一个SELECT或者TABLE命令。这个查询将在一个安全受限的操作中运行。
  • 注意事项 增量物化视图不可以在DATABASE LINK表、临时表或全局临时表上创建。 增量物化视图仅支持简单过滤查询和基表UNION ALL查询。 创建增量物化视图不支持WITH子句、GROUP BY子句、ORDER BY子句、LIMIT子句、WINDOW子句、DISTINCT算子、AGG算子以及不支持除UNION ALL外的子查询。 创建增量物化视图后,基表中的绝大多数DDL操作不再支持。 不支持对增量物化视图进行IUD操作。 增量物化视图创建后,当基表数据发生变化时,需要使用刷新(REFRESH)命令保持物化视图与基表同步。 Ustore引擎不支持物化视图的创建和使用。
  • 功能描述 CREATE INCREMENTAL MATERIALIZED VIEW会创建一个增量物化视图,后续可以使用REFRESH MATERIALIZED VIEW(全量刷新)和REFRESH INCREMENTAL MATERIALIZED VIEW(增量刷新)刷新物化视图的数据。 CREATE INCREMENTAL MATERIALIZED VIEW类似于CREATE TABLE AS,不过它会记住被用来初始化该视图的查询, 因此它可以在后续中进行数据刷新。一个物化视图有很多和表相同的属性,但是不支持临时物化视图。
  • 示例 --创建系统管理员用户。 gaussdb=# CREATE USER sysadmin WITH SYSADMIN PASSWORD '********'; --切换管理员用户。 gaussdb=# \c - sysadmin --创建同义词t1。 gaussdb=# CREATE OR REPLACE SYNONYM t1 FOR ot.t1; --创建新用户u1。 gaussdb=# CREATE USER u1 PASSWORD '********'; --给新用户赋权限。 gaussdb=# GRANT ALL ON SCHEMA sysadmin TO u1; --修改同义词t1的owner为u1。 gaussdb=# ALTER SYNONYM t1 OWNER TO u1; --删除同义词t1。 gaussdb=# DROP SYNONYM t1; --收回用户u1权限。 gaussdb=# REVOKE ALL ON SCHEMA sysadmin FROM u1; --删除用户u1。 gaussdb=# DROP USER u1; --切换到初始用户init_user,请使用真实的初始用户名称替换init_user。 gaussdb=# \c - init_user --删除用户sysadmin。 gaussdb=# DROP USER sysadmin;
  • MY_TAB_COLUMNS MY_TAB_COLUMNS视图显示当前用户拥有的表和视图的字段信息。该视图同时存在于PG_CATALOG和SYS Schema下。该视图所有用户可访问,仅显示该用户所属的信息。 表1 MY_TAB_COLUMNS字段 名称 类型 描述 owner character varying(64) 表的所有者。 table_name character varying(64) 表名称。 column_name character varying(64) 列名。 data_type character varying(128) 列的数据类型。 data_type_mod character varying(3) 暂不支持,值为NULL。 data_type_owner character varying(128) 列的数据类型的所有者。 data_length integer 列的字节长度。 data_precision integer 数据类型的精度,对于numeric数据类型有效,其他类型为NULL。 data_scale integer 小数点右边的位数,对于numeric数据类型有效,其他类型为0。 nullable bpchar 该列是否允许为空,对于主键约束和非空约束,该值为n。 column_id integer 创建表时列的序号。 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,bpchar,char类型置B,nvarchar2类型置C,其余置NULL。 v80_fmt_image character varying(3) 暂不支持,值为NULL。 data_upgraded character varying(3) 暂不支持,值为YES。 histogram character varying(15) 表示直方图是否存在,如果存在的话是什么类型: NONE:表示不存在直方图。 FREQUENCY:表示频率直方图。 EQUI_W IDT H:表示等宽直方图。 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) 列的排序规则。因该字段与保留关键字冲突,调用该字段需加视图名。 comments text 列的注释。 schema character varying(64) 列所属的名称空间的名称。 父主题: 系统视图
  • WLM_USER_RESOURCE_CONFIG WLM_USER_RESOURCE_CONFIG视图显示用户的资源配置信息。 表1 WLM_USER_RESOURCE_CONFIG字段 名称 类型 描述 userid oid 用户oid。 username name 用户名称。 sysadmin boolean 是否是sysadmin。 rpoid oid 资源池的oid。 respool name 资源池的名称。 parentid oid 父用户的oid。 totalspace bigint 占用总空间大小。 spacelimit bigint 空间大上限。 childcount integer 子用户数量。 childlist text 子用户的列表。 父主题: Workload Manager
  • 选择分区方案 表1 表的分区方式及使用场景 分区方式 描述 Range 表数据通过范围进行分区。 Interval 表数据通过范围进行分区,超出范围的会自动根据间隔创建新的分区。 List 表数据通过指定列按照具体值进行分区。 Hash 表数据通过Hash散列方式进行分区。 当表中的数据量很大时,应当对表进行分区,一般需要遵循以下原则: 【规则】对于大数据表,选取适当的分区方案。 GaussDB目前提供RANGE PARTITION、LIST PARTITION、HASH PARTITION分区方法,分区时应注意以下原则: 建议使用具有区间性的字段进行分区,比如日期、区域等; RANGE PARTITION分区的上边界分区值应定义为MAXVALUE,防止数据溢出; 分区名称应体现分区的数据特征,例如使用关键字+区间特征进行命名。 【建议】分区数建议不超过100个,单个分区数据量建议不超过5千万,单分区的数据容量不超过50GB。 【建议】使用具有明显区间性的字段进行分区,比如日期、区域等字段上建立分区。 【建议】分区名称应当体现分区的数据特征。例如,关键字+区间特征。 【建议】将分区上边界的分区值定义为MAXVALUE,以防止可能出现的数据溢出。 【说明】减少需要扫描的数据量。通过分区表的剪枝机制可以大幅减少数据的扫描量。 典型的分区表定义如下: 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 --创建Range分区表 CREATE TABLE staffS_p1 ( staff_ID NUMBER(6) not null, FIRST_NAME VARCHAR2(20), LAST_NAME VARCHAR2(25), EMAIL VARCHAR2(25), PHONE_NUMBER VARCHAR2(20), HIRE_DATE DATE, employment_ID VARCHAR2(10), SALARY NUMBER(8,2), COMMISSION_PCT NUMBER(4,2), MANAGER_ID NUMBER(6), section_ID NUMBER(4) ) PARTITION BY RANGE (HIRE_DATE) ( PARTITION HIRE_19950501 VALUES LESS THAN ('1995-05-01 00:00:00'), PARTITION HIRE_19950502 VALUES LESS THAN ('1995-05-02 00:00:00'), PARTITION HIRE_maxvalue VALUES LESS THAN (MAXVALUE) ); --创建Interval分区表,初始两个分区,插入分区范围外的数据会自动新增分区 CREATE TABLE sales (prod_id NUMBER(6), cust_id NUMBER, time_id DATE, channel_id CHAR(1), promo_id NUMBER(6), quantity_sold NUMBER(3), amount_sold NUMBER(10,2) ) PARTITION BY RANGE (time_id) INTERVAL('1 day') ( PARTITION p1 VALUES LESS THAN ('2019-02-01 00:00:00'), PARTITION p2 VALUES LESS THAN ('2019-02-02 00:00:00') ); --创建List分区表 CREATE TABLE test_list (col1 int, col2 int) partition by list(col1) ( partition p1 values (2000), partition p2 values (3000), partition p3 values (4000), partition p4 values (5000) ); --创建Hash分区表 CREATE TABLE test_hash (col1 int, col2 int) partition by hash(col1) ( partition p1, partition p2 ); 更多的表分区语法信息请参见CREATE TABLE PARTITION。
  • GS_SQL_COUNT GS_SQL_COUNT视图显示数据库当前节点当前时刻执行的五类语句(SELECT、INSERT、UPDATE、DELETE、MERGE INTO)统计信息。 普通用户查询GS_SQL_COUNT视图仅能看到该用户当前节点的统计信息;管理员权限用户查询GS_SQL_COUNT视图则能看到所有用户当前节点的统计信息。 当数据库或该节点重启时,计数将清零,并重新开始计数 。 计数以节点收到的查询数为准,包括数据库内部进行的查询。 表1 GS_SQL_COUNT字段 名称 类型 描述 node_name name 节点名称。 user_name name 用户名。 select_count bigint SELECT语句统计结果。 update_count bigint UPDATE语句统计结果。 insert_count bigint INSERT语句统计结果。 delete_count bigint DELETE语句统计结果。 mergeinto_count bigint MERGE INTO语句统计结果。 ddl_count bigint DDL语句的数量。 dml_count bigint DML语句的数量。 dcl_count bigint DML语句的数量。 total_select_elapse bigint 总SELECT的时间花费(单位:微秒)。 avg_select_elapse bigint 平均SELECT的时间花费(单位:微秒)。 max_select_elapse bigint 最大SELECT的时间花费(单位:微秒)。 min_select_elapse bigint 最小SELECT的时间花费(单位:微秒)。 total_update_elapse bigint 总UPDATE的时间花费(单位:微秒)。 avg_update_elapse bigint 平均UPDATE的时间花费(单位:微秒)。 max_update_elapse bigint 最大UPDATE的时间花费(单位:微秒)。 min_update_elapse bigint 最小UPDATE的时间花费(单位:微秒)。 total_insert_elapse bigint 总INSERT的时间花费(单位:微秒)。 avg_insert_elapse bigint 平均INSERT的时间花费(单位:微秒)。 max_insert_elapse bigint 最大INSERT的时间花费(单位:微秒)。 min_insert_elapse bigint 最小INSERT的时间花费(单位:微秒)。 total_delete_elapse bigint 总DELETE的时间花费(单位:微秒)。 avg_delete_elapse bigint 平均DELETE的时间花费(单位:微秒)。 max_delete_elapse bigint 最大DELETE的时间花费(单位:微秒)。 min_delete_elapse bigint 最小DELETE的时间花费(单位:微秒)。 父主题: 系统视图
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全