华为云用户手册

  • PG_LOCKS PG_LOCKS视图存储各打开事务所持有的锁信息。 表1 PG_LOCKS字段 名称 类型 引用 描述 locktype text - 被锁定对象的类型:relation,extend,page,tuple,transactionid,virtualxid,object,userlock,advisory。 database oid PG_DATABASE.oid 被锁定对象所在数据库的OID。 如果被锁定的对象是共享对象,则OID为0。 如果是一个事务ID,则为NULL。 relation oid PG_CLASS.oid 被锁定对象关系的OID,如果锁定的对象不是关系,也不是关系的一部分,则为NULL。 page integer - 关系内部的页面编号,如果对象不是关系页或者不是行页,则为NULL。 tuple smallint - 页面里边的行编号,如果对象不是行,则为NULL。 virtualxid text - 事务的虚拟ID,如果对象不是一个虚拟事务ID,则为NULL。 transactionid xid - 事务的ID,如果对象不是一个事务ID,则为NULL。 classid oid PG_CLASS.oid 包含该对象的系统表的OID,如果对象不是普通的数据库对象,则为NULL。 objid oid - 对象在其系统表内的OID,如果对象不是普通数据库对象,则为NULL。 objsubid smallint - 对于表的某个字段对应为字段编号;对于其他对象类型,该字段为0;如果该对象不是普通数据库对象,则为NULL。 virtualtransaction text - 持有此锁或者在等待此锁的事务的虚拟ID。 pid bigint - 持有此锁或者等待此锁的服务器线程的逻辑ID。如果锁被一个预备事务持有,则为NULL。 mode text - 此线程持有的或者是期望持有的锁模式。更多有关锁模式的内容请参见LOCK。 granted boolean - 如果锁是持有锁,则为TRUE。 如果锁是等待锁,则为FALSE。 fastpath boolean - 如果通过fast-path获得锁,则为TRUE;如果通过主锁表获得,则为FALSE。 父主题: 系统视图
  • 预置角色 GaussDB (DWS)提供了一组预置角色,以“gs_role_”开头命名,提供对特定的、通常需要高权限的操作的访问,可以将这些角色授权予数据库中的其他用户或角色,使这些用户能够访问或使用特定的信息和功能。请谨慎使用预置角色,以确保预置角色权限的安全使用。 预置角色允许的权限范围可参考下表: 表1 预置角色允许的权限范围 角色 权限描述 gs_role_signal_backend 具有调用函数pg_cancel_backend、pg_terminate_backend、pg_terminate_query、pg_cancel_query、pgxc_terminate_query、pgxc_cancel_query来取消或终止其他会话的权限,但不能操作属于初始用户的会话。 gs_role_read_all_stats 读取系统状态视图并且使用与扩展相关的各种统计信息,包括有些通常只对系统管理员可见的信息。包括: 资源管理类: pgxc_wlm_operator_history pgxc_wlm_operator_info pgxc_wlm_operator_statistics pgxc_wlm_session_info pgxc_wlm_session_statistics pgxc_wlm_workload_records pgxc_workload_sql_count pgxc_workload_sql_elapse_time pgxc_workload_transaction 状态信息类: pgxc_stat_activity pgxc_get_table_skewness table_distribution pgxc_total_memory_detail pgxc_os_run_info pg_nodes_memory pgxc_instance_time pgxc_redo_stat gs_role_analyze_any 具有系统级ANALYZE权限类似系统管理员用户,跳过schema权限检查,对所有的表可以执行ANALYZE。 gs_role_vacuum_any 具有系统级VACUUM权限类似系统管理员用户,跳过schema权限检查,对所有的表可以执行VACUUM。 gs_redaction_policy 具有创建、修改、删除脱敏策略的权限,对所有的表都可以执行CREATE | ALTER | DROP REDACTION POLICY。9.1.0及以上集群版本支持。 预置角色的使用约束: 以gs_role_开头的角色名作为数据库的预置角色保留字,禁止新建以“gs_role_”开头的用户/角色,也禁止将已有的用户/角色重命名为以“gs_role_”开头。 禁止对预置角色执行ALTER和DROP操作。 预置角色默认没有 LOG IN权限,不设置预置登录密码。 gsql元命令\du和\dg不显示预置角色的相关信息,但若指定了PATTERN(用来指定要被显示的对象名称)则预置角色信息会显示。 三权分立关闭时,系统管理员和具有预置角色ADMIN OPTION权限的用户有权对预置角色执行GRANT/REVOKE管理;三权分立打开时,安全管理员(具有CREATEROLE属性)和具有预置角色ADMIN OPTION权限的用户有权对预置角色执行GRANT/REVOKE管理。例如: 1 2 GRANT gs_role_signal_backend TO user1; REVOKE gs_role_signal_backend FROM user1;
  • 权限授予或撤销 数据库对象创建后,进行对象创建的用户就是该对象的所有者。集群安装后的默认情况下,未开启三权分立,数据库系统管理员具有与对象所有者相同的权限。 也就是说对象创建后,默认只有对象所有者或者系统管理员可以查询、修改和删除对象,以及通过GRANT将对象的权限授予其他用户。为使其他用户能够使用对象,可以由对象所有者或管理员通过GRANT/REVOKE对其他用户或角色授予与撤销。 使用GRANT语句授予权限。 例如,将模式myschema的权限赋给角色u1后,将表myschema.t1的SELECT权限授予角色u1。 1 2 GRANT USAGE ON SCHEMA myschema TO u1; GRANT SELECT ON TABLE myschema.t1 to u1; 使用REVOKE撤销已经授予的权限。 例如:撤销用户u1在指定表myschema.t1上的所有权限。 REVOKE ALL PRIVILEGES ON myschema.t1 FROM u1;
  • 权限概述 权限表示用户访问某个数据库对象(包括模式、表、函数、序列等)的操作(包括增、删、改、查、创建等)是否被允许。 GaussDB(DWS)中的权限管理分为三种场景: 系统权限 系统权限又称为用户属性,包括SYSADMIN、CREATEDB、CREATEROLE、AUDITADMIN和LOGIN。 系统权限一般通过CREATE/ALTER ROLE语法来指定。其中,SYSADMIN权限可以通过GRANT/REVOKE ALL PRIVILEGE授予或撤销。但系统权限无法通过ROLE和USER的权限被继承,也无法授予PUBLIC。 数据对象权限 将数据库对象(表和视图、指定字段、数据库、函数、模式等)的相关权限授予特定角色或用户。GRANT命令将数据库对象的特定权限授予一个或多个角色。这些权限会追加到已有的权限上。 用户权限 将一个角色或用户的权限授予一个或多个其他角色或用户。在这种情况下,每个角色或用户都可视为拥有一个或多个数据库权限的集合。 当声明了WITH ADMIN OPTION,被授权的用户可以将该权限再次授予其他角色或用户,以及撤销所有由该角色或用户继承到的权限。当授权的角色或用户发生变更或被撤销时,所有继承该角色或用户权限的用户拥有的权限都会随之发生变更。 数据库系统管理员可以给任何角色或用户授予/撤销任何权限。拥有CREATEROLE权限的角色可以赋予或者撤销任何非系统管理员角色的权限。
  • 角色 GaussDB(DWS)的权限管理模型,是一种典型的RBAC(基于角色的权限控制)的实现。其将用户、角色、权限通过此模型管理起来。 角色是一组权限的集合。 “用户”概念和“角色”概念实际是等同的,唯一的区别在于“用户”拥有login权限,而“角色”拥有nologin权限。 按照数据库系统中承担的责任划分具有不同权限的角色。角色是数据库权限的集合,代表了一个数据库用户、或一组数据用户的行为约束。 角色和用户可以转换,通过ALTER将角色拥有登录权限。 通过GRANT把角色授予用户后,用户即具有了角色的所有权限。推荐使用角色进行高效权限分配。例如,可以为设计、开发和维护人员创建不同的角色,将角色GRANT给用户后,再向每个角色中的用户授予其所需数据的差异权限。在角色级别授予或撤销权限时,这些权限更改会对角色下的所有成员生效。 非三权分立时,只有系统管理员和具有CREATEROLE属性的用户才能创建、修改或删除角色。三权分立下,只有具有CREATEROLE属性的用户才能创建、修改或删除角色。 要查看所有角色,请查询系统表PG_ROLES: 1 SELECT * FROM PG_ROLES; 具体的创建,修改和删除角色操作,请参考SQL语法参考中CREARE ROLE/ALTER ROLE/DROP ROLE。
  • 层级权限管理 GaussDB(DWS)通过Database、Schema和数据对象权限实现层级权限管理。 Database之间无法直接互访,通过连接隔离实现彻底的权限隔离。各个Database之间共享资源极少,可实现连接隔离、权限隔离等。数据库集群包含一个或多个已命名数据库。用户和角色在整个集群范围内是共享的,但是其数据并不共享。即用户可以连接任何数据库,但当连接成功后,任何用户都只能访问连接请求里所声明的数据库。 Schema隔离的方式共用资源较多,可以通过GRANT与REVOKE语法便捷地控制不同用户对各Schema及其下属对象的权限,从而赋给业务更多的灵活性。每个数据库包括一个或多个Schema。每个Schema包含表、函数等其他类型的对象。用户要访问包含在指定Schema中的对象,需要被授予Schema的USAGE权限。 对象创建后,默认只有对象所有者或者系统管理员可以查询、修改和删除对象。其他用户要访问包含具体的数据库对象,例如table1,需要首先被授予database的CONNECT权限,再被授予Schema的USAGE权限,最后授予table1的SELECT权限。用户要访问底层的对象,必须先赋予上层对象的权限。比如用户要创建或者删除Schema,需要首先被授予database的CREATE权限; 图1 层级权限管理
  • GS_RESPOOL_MONITOR GS_RESPOOL_MONITOR视图显示所有资源池作业运行信息及资源使用信息,仅支持CN上查询。该视图仅8.2.1.100及以上集群版本支持。 表1 GS_RESPOOL_MONITOR字段 名称 类型 描述 rpname name 资源池名称。 nodegroup name 资源池所属逻辑集群的名称,默认集群显示“installation”。 cn_count bigint 集群包含的CN数量,多CN环境下用于判断单CN管控结果是否合理。 short_acc boolean 资源池是否开启短查询加速。 session_count bigint 关联该资源池的会话数量,即关联该资源池的用户发起的会话数量,包含IDLE和ACTIVE会话。 active_count bigint 关联该资源池的活跃会话数量,即正在执行查询的会话数量。 global_wait bigint 关联该资源池的所有作业中,因单CN上并发超max_active_statements引起排队的作业数。 fast_run bigint 关联该资源池的所有作业中,正在资源池快车道运行的作业数。 fast_wait bigint 关联该资源池的所有作业中,在资源池快车道排队的作业数。 fast_limit bigint 资源池快车道作业并发上限。 slow_run bigint 关联该资源池的所有作业中,正在资源池慢车道运行的作业数。 slow_wait bigint 关联该资源池的所有作业中,在资源池慢车道排队的作业数。 slow_limit bigint 资源池慢车道作业并发上限。 used_mem text 资源池在所有DN上已用内存的平均值,显示结果已使用pg_size_pretty格式化。 estimate_mem text 资源池正在运行的作业估算内存之和,显示结果已使用pg_size_pretty格式化。 mem_limit text 资源池可用内存的上限,显示结果已使用pg_size_pretty格式化。 query_mem_limit name 资源池内单个查询可以使用的内存上限,主要用于限制查询估算内存,防止估算内存过大导致异常排队;通过估算内存限制查询实际使用内存,显示结果已使用pg_size_pretty格式化。 used_cpu double precision 资源池在所有DN上占用CPU核数的平均值;CPU隔离以节点和资源池为单位,单个节点上包含多个DN时,资源池在单节点上占用的CPU核数需要乘以DN数。 cpu_limit double precision 资源池在所有节点上可用CPU上限的平均值,CPU配额管控情况下为GaussDB全部可用CPU核数,CPU限额管控情况下为关联控制组的可用CPU核数。 read_speed text 资源池在所有DN上逻辑IO读速率的平均值,显示结果已使用pg_size_pretty格式化。 write_speed text 资源池在所有DN上逻辑IO写速率的平均值,显示结果已使用pg_size_pretty格式化。 send_speed text 资源池在所有DN上网络发送速率的平均值,显示结果已使用pg_size_pretty格式化。 recv_speed text 资源池在所有DN上网络接收速率的平均值,显示结果已使用pg_size_pretty格式化。 父主题: 系统视图
  • 原型 1 2 3 4 5 6 SQLRETURN SQLBindCol(SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValuePtr, SQLLEN BufferLength, SQLLEN *StrLen_or_IndPtr);
  • 参数 表1 SQLBindCol参数 关键字 参数说明 StatementHandle 语句句柄。 ColumnNumber 要绑定结果集的列号。起始列号为0,以递增的顺序计算列号,第0列是书签列。若未设置书签页,则起始列号为1。 TargetType 缓冲区中C数据类型的标识符。 TargetValuePtr 输出参数:指向与列绑定的数据缓冲区的指针。SQLFetch函数返回这个缓冲区中的数据。如果此参数为一个空指针,则StrLen_or_IndPtr是一个有效值。 BufferLength TargetValuePtr指向缓冲区的长度,以字节为单位。 StrLen_or_IndPtr 输出参数:缓冲区的长度或指示器指针。若为空值,则未使用任何长度或指示器值。
  • PGXC_COMM_SEND_STREAM PGXC_COMM_SEND_STREAM视图展示所有DN上的通信库发送流状态。 表1 PGXC_COMM_SEND_STREAM字段 名称 类型 描述 node_name text 节点名称。 local_tid bigint 使用此通信流的线程ID。 remote_name text 连接对端节点名称。 remote_tid bigint 连接对端线程ID。 idx integer 通信对端DN在本DN内的标识编号。 sid integer 通信流在物理连接中的标识编号。 tcp_sock integer 通信流所使用的tcp通信socket。 state text 通信流当前的状态: UNKNOWN:表示当前逻辑连接状态未知。 READY:表示逻辑连接已就绪。 RUN:表示逻辑连接发送报文正常。 HOLD:表示逻辑连接发送报文等待中。 CLOSED:表示关闭逻辑连接。 TO_CLOSED:表示将会关闭逻辑连接。 WRITING:表示正在写入数据。 query_id bigint 通信流对应的debug_query_id编号。 pn_id integer 通信流所执行查询的plan_node_id编号。 send_smp integer 通信流所执行查询send端的smpid编号。 recv_smp integer 通信流所执行查询recv端的smpid编号。 send_bytes bigint 通信流发送的数据总量,单位Byte。 time bigint 通信流当前生命周期使用时长,单位ms。 speed bigint 通信流的平均发送速率,单位Byte/s。 quota bigint 通信流当前的通信配额值,单位Byte。 wait_quota bigint 通信流等待quota值产生的额外时间开销,单位ms。 父主题: 系统视图
  • audit_object_name_format 参数说明:控制审计日志object_name字段所显示的对象名的格式。 参数类型:USERSET 取值范围:枚举类型 single,表示object_name字段显示单个对象名,且为目标对象的名称。 all,表示object_name字段显示多个对象名称。 默认值:single 当默认值设置为all时,显示多个对象名的场景有:SELECT、DELETE、UPDATE、INSERT、MERGE、CREATE TABLE AS、CREATE VIEW AS、DROP USER ... CASCADE、DROP OWNED BY ... CASCADE、DROP SCHEMA ... CASSCADE、DROP TABLE ... CASCADE、DROP FOREIGN TABLE ... CASCADE、DROP VIEW ... CASCADE。
  • audit_object_details 参数说明:控制审计日志中是否记录object_details字段,该字段为审计语句中的表名、列名以及列使用的类型。该参数仅8.2.1.100及以上集群版本支持。 参数类型:USERSET 取值范围:布尔类型 on表示审计记录object_details字段。 off表示审计不记录object_details字段。 默认值:off 当设置为on时,会对语句中的表名、列名以及列使用的类型进行审计,可能会对性能存在一定的影响,请谨慎开启。 当设置为on时,object_details字段记录的场景有:SELECT、DELETE、UPDATE、INSERT、MERGE、CREATE TABLE AS SELECT,GRANT、DECLARE CURSOR,其中对于执行失败的GRANT语句不予记录。
  • 应用示例 查询当前视图,统计OBS写流量和平均写带宽,统计结果按10分钟聚集。 1 2 3 4 5 6 7 8 9 10 select * from gs_obs_write_traffic; nodename | hostname | traffic_mb | bandwidth_mb_per_s | reqcount | logtime --------------+------------------+----------------------+---------------------+----------+------------------------ dn_1 | rhel_10_90_45_56 | .000738143920898438 | .000289970820362525 | 12 | 2022-10-24 16:10:00+08 dn_1 | rhel_10_90_45_56 | .000354766845703125 | .000386063466694153 | 7 | 2022-10-24 18:50:00+08 dn_1 | rhel_10_90_45_56 | 9.34600830078125e-05 | .000143659648687162 | 2 | 2022-11-07 09:20:00+08 dn_1 | rhel_10_90_45_56 | 4.10079956054688e-05 | .000186667253592502 | 1 | 2022-11-07 09:30:00+08 dn_1 | rhel_10_90_45_56 | 2048.17834663391 | 27.2766632219637 | 2 | 2022-11-22 16:10:00+08 dn_1 | rhel_10_90_45_56 | 3747.23722648621 | 28.0842938534546 | 4 | 2022-11-22 16:20:00+08 (6 row)
  • PG_TS_CONFIG PG_TS_CONFIG系统表包含表示文本搜索配置的选项。一个配置指定一个特定的文本搜索解析器和一个用于解析器输出类型的字典列表。 解析器在PG_TS_CONFIG记录中显示,但是字典映射的标记是由PG_TS_CONFIG_MAP中的辅助记录定义的。 表1 PG_TS_CONFIG字段 名字 类型 引用 描述 oid oid - 行标识符(隐藏属性,必须明确选择才会显示)。 cfgname name - 文本搜索配置名。 cfgnamespace oid PG_NAMESPACE.oid 此配置所在的命名空间的OID。 cfgowner oid PG_AUTHID.oid 配置的所有者。 cfgparser oid PG_TS_PARSER.oid 此配置的文本搜索解析器的OID。 cfoptions text[] - 分词相关配置选项。 父主题: 系统表
  • DBA_TABLES DBA_TABLES视图存储关于数据库下的所有表信息。需要有系统管理员权限才可以访问。 名称 类型 描述 owner character varying(64) 表的所有者。 table_name character varying(64) 表名。 tablespace_name character varying(64) 表所在的表空间的名称。 status character varying(8) 当前记录是否有效。 temporary character(1) 是否为临时表。 Y表示是临时表。 N表示不是临时表。 dropped character varying 当前记录是否已删除。 YES表示已删除。 NO表示未删除。 num_rows numeric 表的估计行数。 父主题: 系统视图
  • pgxc_get_cstore_dirty_ratio(rel_name text, partition_name) 描述:该函数用于获取各个DN上目标表的cu、delta以及cudesc的脏页率以及大小,仅支持HStore_opt表。 其中partition_name为可选参数,如果传入分区名则只返回该分区对应的信息;如果没传入分区名且是主表时分区表返回所有分区对应的信息。该函数仅9.1.0.100及以上集群版本支持。 返回值类型:record 返回值: node_name:DN节点名。 database_name:表所在数据库名称 rel_name:主表名 part_name:分区名 cu_dirty_ratio:cu文件的脏页率 cu_size:cu文件大小 delta_dirty_ratio:delta表脏页率 delta_size:delta表大小 cudesc_dirty_ratio:cudesc表脏页率 cudesc_size:cudesc表大小 示例: 1 2 3 4 5 6 7 8 SELECT * FROM pgxc_get_cstore_dirty_ratio('hs_opt_part'); node_name | database_name | rel_name | partition_name | cu_dirty_ratio | cu_size | delta_dirty_ratio | delta_size | cudesc_dirty_ratio | cudesc_size -----------+---------------+--------------------+----------------+----------------+---------+-------------------+------------+--------------------+------------- dn_1 | postgres | public.hs_opt_part | p1 | 0 | 0 | 0 | 16384 | 0 | 24576 dn_1 | postgres | public.hs_opt_part | p2 | 0 | 0 | 0 | 16384 | 0 | 24576 dn_1 | postgres | public.hs_opt_part | p3 | 0 | 0 | 0 | 16384 | 0 | 24576 dn_1 | postgres | public.hs_opt_part | p4 | 0 | 0 | 0 | 16384 | 0 | 24576 dn_1 | postgres | public.hs_opt_part | other | 0 | 1105920 | 0 | 524288 | 0 | 40960
  • pgxc_get_hstore_delta_info(rel_name text) 描述:该函数用于获取目标表的delta表信息,包括delta表的大小,insert/delete/update各种类型记录的数量等。该函数仅8.2.1.100及以上集群版本支持。 返回值类型:record 返回值: node_name:DN节点名。 part_name:分区名,非分区表此列为non partition table。 live_tup:存活的元组数量。 n_ui_type:type 是 ui (小cu合并和upsert走update插入) 的记录的数量。一条ui记录表示一次插入,可以是单插或者批插。该参数仅8.3.0.100及以上版本支持。 n_i_type:type 是 i (insert) 的记录的数量。一条i记录表示一次插入,可以是单插或者批插。 n_d_type:type 是 d (delete) 的记录的数量。一条d记录表示一次删除,可以是单条删或者批量删除。 n_x_type:type 是 x (由update产生的delete) 记录的数量。 n_u_type:type 是 u (轻量化update) 的记录数量。 n_m_type:type 是 m (merge) 的记录数量。 data_size:表的大小。 示例: 1 2 3 4 5 6 7 SELECT * FROM pgxc_get_hstore_delta_info('hs_part'); node_name | part_name | live_tup | n_ui_type | n_i_type | n_d_type | n_x_type | n_u_type | n_m_type | data_size -----------+-----------+----------+-----------+----------+----------+----------+----------+----------+----------- dn_1 | p1 | 2 | 0 | 2 | 0 | 0 | 0 | 0 | 8192 dn_1 | p2 | 2 | 0 | 2 | 0 | 0 | 0 | 0 | 8192 dn_1 | p3 | 2 | 0 | 2 | 0 | 0 | 0 | 0 | 8192 (3 rows)
  • hstore_full_merge(rel_name text,partitionName text) 描述:该函数用于手动对HStore表进行全量清理操作,其中第二个入参为可选参数,用于指定单分区进行操作。 返回值类型:int 执行该操作会强制将DELTA表上的所有可见操作Merge到主表,然后建一张新的空Delta表, 期间持有该表的八级锁。 该操作的耗时长度与DELTA表上的数据量有关,务必打开HStore的清理线程,确保HStore表的及时清理。 仅在8.3.0.100及以上集群版本支持第二个可选参数partitionName,因此8.3.0.100及以上集群版本不支持使用call调用此函数(call不支持重载) 示例: 1 SELECT hstore_full_merge('reason_select','part1');
  • PGXC_WLM_USER_RESOURCE_HISTORY PGXC_WLM_USER_RESOURCE_HISTORY视图显示所有用户在对应实例上资源消耗的历史信息。该视图仅8.2.0及以上集群版本支持。 表1 PGXC_WLM_USER_RESOURCE_HISTORY字段 名称 类型 描述 nodename name 实例名称,包含CN和DN。 username text 用户名。 timestamp timestamp with time zone 时间戳。 used_memory integer 正在使用的内存大小,单位MB。 DN:显示当前DN上对应用户正在使用的内存大小。 CN:显示所有DN上对应用户正在使用的内存累加和。 total_memory integer 可以使用的内存大小,单位MB。值为0表示未限制最大可用内存,其限制取决于数据库最大可用内存。 DN:显示当前DN上对应用户可以使用的内存大小。 CN:显示所有DN上对应用户可以使用的内存大小之和。 used_cpu double precision 正在使用的CPU核数(仅统计非默认资源池上复杂作业的CPU使用情况,且该值为相关控制组的CPU使用统计值)。 DN:显示当前DN上对应用户正在使用的CPU核数。 CN:显示所有DN上对应用户正在使用的CPU核数之和。 total_cpu integer 用户关联控制组的CPU核数总和。 DN:显示当前DN上对应用户能够使用的CPU核数。 CN:显示所有DN上对应用户能够使用的CPU核数之和。 used_space bigint 已使用的永久表存储空间大小,单位KB。 DN:显示当前DN上对应用户已使用的永久表存储空间大小。 CN:显示所有DN上对应用户已使用的永久表存储空间大小之和。 total_space bigint 可使用的永久表存储空间大小,单位KB,值为-1表示未限制永久表存储空间。 DN:显示当前DN上对应用户可使用的永久表存储空间大小。 CN:显示所有DN上对应用户可使用的永久表存储空间大小之和。 used_temp_space bigint 已使用的临时表存储空间大小,单位KB。 DN:显示当前DN上对应用户已使用的临时表存储空间大小。 CN:显示所有DN上对应用户已使用的临时表存储空间大小之和。 total_temp_space bigint 可使用的临时表存储空间大小,单位KB,值为-1表示未限制临时表存储空间。 DN:显示当前DN上对应用户可使用的临时表存储空间大小 CN:显示所有DN上对应用户可使用的临时表存储空间大小之和 used_spill_space bigint 已使用的算子落盘空间大小,单位KB。 DN:显示当前DN上对应用户已使用的算子落盘空间大小。 CN:显示所有DN上对应用户已使用的算子落盘空间大小之和。 total_spill_space bigint 可使用的算子落盘空间大小,单位KB,值为-1表示未限制算子落盘空间。 DN:显示当前DN上对应用户可使用的算子落盘空间大小。 CN:显示所有DN上对应用户可使用的算子落盘空间大小之和。 read_kbytes bigint CN:过去5秒内,该用户在所有DN上复杂作业read的字节总数,单位KB。 DN:实例启动至当前时间为止,该用户复杂作业read的字节总数,单位KB。 write_kbytes bigint CN:过去5秒内,该用户在所有DN上复杂作业write的字节总数,单位KB。 DN:实例启动至当前时间为止,该用户复杂作业write的字节总数,单位KB。 read_counts bigint CN:过去5秒内,该用户在所有DN上复杂作业read的次数之和。 DN:实例启动至当前时间为止,该用户复杂作业read的次数之和。 write_counts bigint CN:过去5秒内,该用户在所有DN上复杂作业write的次数之和。 DN:实例启动至当前时间为止,该用户复杂作业write的次数之和。 read_speed double precision CN:过去5秒内,该用户在单个DN上复杂作业read平均速率。单位KB/s。 DN:过去5秒内,该用户在该DN上复杂作业read平均速率。单位KB/s。 write_speed double precision CN:过去5秒内,该用户在单个DN上复杂作业write平均速率。单位KB/s。 DN:过去5秒内,该用户在该DN上复杂作业write平均速率。单位KB/s。 send_speed double precision CN:一个5s监控周期内,该用户在所有DN上网络发送平均速率之和。单位KB/s。 DN:一个5s监控周期内,该用户在该DN上网络发送平均速率。单位KB/s。 recv_speed double precision CN:一个5s监控周期内,该用户在所有DN上网络接收平均速率之和。单位KB/s。 DN:一个5s监控周期内,该用户在该DN上网络接收平均速率。单位KB/s。 父主题: 系统视图
  • GS_USER_MONITOR GS_USER_MONITOR视图显示所有用户作业运行信息及资源使用信息,仅支持CN上查询。该视图仅8.2.1.100及以上集群版本支持。 表1 GS_USER_MONITOR字段 名称 类型 描述 usename name 用户名称。 rpname name 用户关联的资源池名称。 nodegroup name 资源池所属逻辑集群的名称,默认集群显示“installation”。 session_count bigint 该用户发起的会话数量,包含IDLE和ACTIVE会话。 active_count bigint 该用户发起的活跃会话数量,即正在执行查询的会话数量。 global_wait bigint 该用户执行的所有作业中,因单CN上并发超max_active_statements引起排队的作业数。 fast_run bigint 该用户执行的所有作业中,正在资源池快车道运行的作业数。 fast_wait bigint 该用户执行的所有作业中,在资源池快车道排队的作业数。 slow_run bigint 该用户执行的所有作业中,正在资源池慢车道运行的作业数。 slow_wait bigint 该用户执行的所有作业中,在资源池慢车道排队的作业数。 used_mem bigint 用户在所有DN上已用内存的平均值,单位:MB。 estimate_mem bigint 用户正在运行的作业估算内存之和,单位:MB。 used_cpu double precision 用户在所有DN上使用CPU核数的平均值,单个节点上包含多个DN时,用户在单节点上占用的CPU核数需要乘以DN数。 read_speed bigint 用户在所有DN上逻辑IO读速率的平均值,单位:KB/s。 write_speed bigint 用户在所有DN上逻辑IO写速率的平均值,单位:KB/s。 send_speed bigint 用户在所有DN上网络发送速率的平均值,单位:KB/s。 recv_speed bigint 用户在所有DN上网络接收速率的平均值,单位:KB/s。 used_space bigint 用户永久表已使用的空间大小,单位:KB。 space_limit bigint 用户永久表可使用的空间大小上限,单位:KB。-1为不限制。 used_temp_space bigint 用户临时表已使用的空间大小,单位:KB。 temp_space_limit bigint 用户临时表可使用的空间大小上限,单位:KB。-1为不限制。 used_spill_space bigint 用户中间结果集落盘已使用的空间大小,单位:KB。 spill_space_limit bigint 用户中间结果集落盘可使用的空间大小上限,单位:KB。-1为不限制。 父主题: 系统视图
  • PGXC_GET_TABLE_SKEWNESS PGXC_GET_TABLE_SKEWNESS视图展示当前库中表的数据分布倾斜情况。需要有系统管理员权限或预置角色gs_role_read_all_stats权限才可以访问此视图。 表1 PGXC_GET_TABLE_SKEWNESS字段 名称 类型 描述 schemaname name 表所在的模式名。 tablename name 表名。 totalsize numeric 表的总大小,单位Byte。 avgsize numeric(1000,0) 表大小平均值(totalsize/DN个数,该值为平均分布的理想情况下,表在各DN占用空间大小)。 maxratio numeric(10,3) 单DN表大小最大值占比(表在各DN占用空间的最大值/avgsize)。 minratio numeric(10,3) 单DN表大小最小值占比(表在各DN占用空间的最小值/avgsize)。 skewsize bigint 表分布倾斜值(单DN表大小最大值 - 单DN表大小最小值)。 skewratio numeric(10,3) 表分布倾斜率(skewsize/avgsize)。 skewstddev numeric(1000,0) 表分布标准方差(在表大小一定的情况下,该值越大表明表的整体分布情况越倾斜)。 父主题: 系统视图
  • Database设计建议 【建议】在实际业务中,根据需要创建新的Database,不建议直接使用集群默认的gaussdb数据库。 【建议】一个集群内,用户自定义的Database数量建议不超过3个。 【建议】为了适应全球化的需求,使数据库编码能够存储与表示绝大多数的字符,建议创建Database的时候使用UTF-8编码。 【关注】创建Database时,需要重点关注字符集编码(ENCODING)和兼容性(DBCOMPATIBILITY)两个配置项。GaussDB(DWS)支持Oracle、Teradata和MySQL三种兼容模式,分别兼容Oracle、Teradata和MySQL语法,不同兼容模式下的语法行为可能有一些差异。详细内容可参考Oracle、Teradata和MySQL语法兼容性差异。 【关注】Database的owner默认拥有该Database下所有对象的所有权限,包括删除权限。删除权限影响较大,请谨慎使用。
  • Schema设计建议 【关注】如果该用户不具有sysadmin权限或者不是该Schema的owner,要访问Schema下的对象,需要同时给用户赋予Schema的usage权限和对象的相应权限。 【关注】如果要在Schema下创建对象,需要授予操作用户该Schema的CREATE权限。 【关注】Schema的owner默认拥有该Schema下对象的所有权限,包括删除权限。删除权限影响较大,请谨慎使用。
  • PG_STAT_USER_TABLES PG_STAT_USER_TABLES视图显示所有命名空间中用户自定义普通表和TOAST表的状态信息。 表1 PG_STAT_USER_TABLES字段 名称 类型 描述 relid oid 表的OID。 schemaname name 表的模式名。 relname name 表名。 seq_scan bigint 在此表上表启动的顺序扫描的次数。 seq_tup_read bigint 顺序扫描抓取的有live数据行的数目。 idx_scan bigint 索引扫描的次数。 idx_tup_fetch bigint 索引扫描抓取的有live数据行的数目。 n_tup_ins bigint 插入的行数。 n_tup_upd bigint 更新的行数。 n_tup_del bigint 删除的行数。 n_tup_hot_upd bigint 热更新的行数(即不需要单独的索引更新)。 n_live_tup bigint live行估计数。 n_dead_tup bigint dead行估计数。 last_vacuum timestamp with time zone 最后一次手动vacuum时间(不计算VACUUM FULL)。 last_autovacuum timestamp with time zone 最后一次autovacuum时间。 last_analyze timestamp with time zone 最后一次analyze时间。 last_autoanalyze timestamp with time zone 最后一次autoanalyze时间。 vacuum_count bigint vacuum的次数(不计算VACUUM FULL)。 autovacuum_count bigint autovacuum的次数。 analyze_count bigint analyze的次数。 autoanalyze_count bigint autoanalyze的次数。 父主题: 系统视图
  • resource_track_cost 参数说明:设置对当前会话的语句进行资源监控的最小执行代价。该参数只有当参数enable_resource_track为on时才有效。 参数类型:USERSET 取值范围:整型,-1~INT_MAX 值为-1时,不进行资源监控。 值大于或等于0时,对执行代价超过该参数值的语句进行资源监控。 默认值:0 新建集群默认值为0,升级场景该参数的默认值为保持前向兼容维持原值。
  • resource_track_duration 参数说明:设置资源监控实时视图(参见表1)中记录的语句执行结束后进行历史信息转存的最小执行时间。当执行完成的作业,其执行时间不小于此参数值时,作业信息会从实时视图(以statistics为后缀的视图)转存到相应的历史视图(以history为后缀的视图)中。该参数只有当enable_resource_track为on时才有效。 参数类型:USERSET 取值范围:整型,0~INT_MAX,单位为秒。 值为0时,资源监控实时视图(表1)中记录的所有语句都进行历史信息归档。 值大于0时,资源监控实时视图(表1)中记录的语句的执行时间超过这个值就会进行历史信息归档。 默认值:60s
  • resource_track_subsql_duration 参数说明:设置过滤存储过程中子语句的最小执行时间。该参数仅8.2.1及以上集群版本支持。 当存储过程中子语句执行完成时,其执行时间大于此参数设置值时,作业信息会转储到TopSQL归档表中。该参数只有当enable_track_record_subsql为on时生效。 参数类型:USERSET 取值范围:整型,0~INT_MAX,单位为秒。 值为0时,存储过程中所有子语句都进行历史信息归档。 值大于0时,存储过程中子语句记录的执行时间超过设置值就会进行历史信息归档。 默认值:180s
  • enable_strict_memory_expansion 参数说明:是否开启对语句内存扩展的严格控制。(该参数仅8.2.0及以上集群版本支持) 语句在CN节点上会计算出估算内存,用该值来预占内存资源,在DN节点上会根据系统负载情况,在语句内存不足时尝试做内存扩展,以提升语句的执行效率。当打开此参数时,将会严格限制语句内存扩展的范围,尽可能保证语句的内存扩展不会超过语句的最大估算内存。语句的算子内存每次扩展是按比例扩展,因此,可能出现最后一次扩展内存之后一定幅度超过限制的现象,但能实现限制语句内存扩展在一定范围内。 参数类型:SIGHUP 取值范围:布尔型 on表示打开对语句内存扩展的严格控制。 off表示关闭对语句内存扩展的严格控制。 默认值:off
  • allow_zero_estimate_memory 参数说明:是否允许语句估算内存为0。(该参数仅8.2.0及以上集群版本支持) 当语句查询的表没有统计信息时,该语句在CN节点上的估算内存可能设置为0,当估算内存为0时,语句的内存将会变化为算子内存受到work_mem限制(work_mem来限制算子内存的方式已经不推荐使用),如果work_mem设置较大,而语句的算子数量较多时,语句的实际内存值也能会较大,该参数设置为off时,将不允许未做analyze的查询出现估算内存为0,避免不可预期的问题。 参数类型:SIGHUP 取值范围:布尔型 on表示允许语句估算内存为0。 off表示不允许语句估算内存为0。 默认值:on
  • wlm_memory_feedback_adjust 参数说明:是否开启动态负载管理中的内存负反馈功能。(该参数仅8.2.0及以上集群版本支持) 语句在CN节点上会计算出估算内存,用该值来预占内存资源,语句内存过高估算场景时,语句预占内存资源过大,会引发后续作业排队,导致系统资源利用率下降,内存负反馈机制,会基于DN上的实际使用内存情况,判断如果集群连续一段时间处于高估场景时,会由CCN节点动态降低语句在CN预占的内存资源,将高估的内存腾让出来,给后续作业使用,从一定程度上缓解了语句严重高估导致系统资源利用率下降的问题。 参数类型:SIGHUP 取值范围:字符串 on表示启用内存负反馈功能。 off表示关闭内存负反馈功能。 on()表示启用内存负反馈功能,并且指定触发负反馈需要的时间以及触发负反馈需要的估算内存百分比参数。例如:on(60,50)表示启用内存负反馈功能,触发负反馈机制生效需要连续60秒都是高估场景,还需要语句预占的估算内存总值要超过系统可用内存的50%。默认触发负反馈机制生效的时间长度为50秒,默认触发负反馈生效的最低估算内存总值要超过系统可用内存的40%。 默认值:on
共100000条