华为云用户手册

  • greatest(expr1 [, ...]) 描述:获取并返回参数列表中值最大的表达式的值。 返回值类型: 示例: 1 2 3 4 5 gaussdb=# SELECT greatest(1*2,2-3,4-1); greatest ---------- 3 (1 row) 1 2 3 4 5 gaussdb=# SELECT greatest('HARRY', 'HARRIOT', 'HAROLD'); greatest ---------- HARRY (1 row) 备注:不支持对xml数据类型的操作。 此函数在参数a_format_version值为10c和a_format_dev_version值为s1的情况下: 如果参数中有任意一个参数的值为null,函数返回null。 如果第一个参数是数值类型,函数将第一个参数和其他参数都转换为numeric类型,然后进行比较,对于不能转换的,提示出错信息;第一个参数是其他类型的,函数将其他参数都转换为第一个参数的类型进行比较,对于不能转换的,提示出错信息。
  • decode(base_expr, compare1, value1, Compare2,value2, … default) 描述:把base_expr与后面的每个compare(n) 进行比较,如果匹配返回相应的value(n)。如果没有发生匹配,则返回default。 示例: 1 2 3 4 5 gaussdb=# SELECT decode('A','A',1,'B',2,0); case ------ 1 (1 row) 备注:不支持对xml数据类型的操作。 nullif(expr1, expr2) 描述:当且仅当expr1和expr2相等时,NULLIF才返回NULL,否则它返回expr1。 nullif(expr1, expr2) 逻辑上等价于CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END。 nullif(expr1, expr2)函数为映射函数,故pg_proc系统表中无法查到对应函数定义。 示例: 1 2 3 4 5 gaussdb=# SELECT nullif('hello','world'); nullif -------- hello (1 row) 备注:不支持对xml数据类型的操作。 如果两个参数的数据类型不同,则: 若两种数据类型之间存在隐式转换,则以其中优先级较高的数据类型为基准将另一个参数隐式转换成该类型,转换成功则进行计算,转换失败则返回错误。如: 1 2 3 4 5 gaussdb=# SELECT nullif('1234'::VARCHAR,123::INT4); nullif -------- 1234 (1 row) 1 2 gaussdb=# SELECT nullif('1234'::VARCHAR,'2012-12-24'::DATE); ERROR: invalid input syntax for type timestamp: "1234" 若两种数据类型之间不存在隐式转换,则返回错误。如: 1 2 3 4 5 6 gaussdb=# SELECT nullif(1::bit, '1'::MONEY); ERROR: operator does not exist: bit = money LINE 1: SELECT nullif(1::bit, '1'::MONEY); ^ HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. CONTEXT: referenced column: nullif
  • coalesce(expr1, expr2, ..., exprn) 描述:返回参数列表中第一个非NULL的参数值。 COALESCE(expr1, expr2) 等价于CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END。 示例: 1 2 3 4 5 gaussdb=# SELECT coalesce(NULL,'hello'); coalesce ---------- hello (1 row) 备注: 如果表达式列表中的所有表达式都等于NULL,则本函数返回NULL。 它常用于在显示数据时用缺省值替换NULL。 和CASE表达式一样,COALESCE不会计算不需要用来判断结果的参数;即在第一个非空参数右边的参数不会被计算。
  • GLOBAL_OS_RUNTIME 提供整个集群中所有正常节点下的操作系统运行状态信息,如表1所示。 表1 GLOBAL_OS_RUNTIME字段 名称 类型 描述 node_name name 节点名称。 id integer 编号。 name text 操作系统运行状态名称。 value numeric 操作系统运行状态值。 comments text 操作系统运行状态注释。 cumulative boolean 操作系统运行状态的值是否为累加值。 父主题: OS
  • PG_LOCKS PG_LOCKS视图显示各打开事务所持有的锁的信息。具体字段信息如表1所示。 表1 PG_LOCKS字段 名称 类型 引用 描述 locktype text - 被锁定对象的类型:relation、extend、page、tuple、transactionid、virtualxid、object、userlock、advisory或tablespace。 database oid PG_DATABASE.oid 被锁定对象所在数据库的OID。 如果被锁定的对象是共享对象,则OID为0。 如果被锁定的对象是一个事务,则OID为NULL。 relation oid PG_CLASS.oid 关系的OID,如果锁定的对象不是关系,也不是关系的一部分,则为NULL。 page integer - 关系内部的页面编号,如果对象不是关系页或者不是行页,则为NULL。 tuple smallint - 页面里边的行编号,如果对象不是行,则为NULL。 bucket integer - 哈希桶编号。 virtualxid text - 虚拟事务的id,如果对象不是一个虚拟事务,则为NULL。 transactionid xid - 事务的id,如果对象不是一个事务,则为NULL。 classid oid PG_CLASS.oid 包含该对象的系统表的OID,如果对象不是普通的数据库对象,则为NULL。 objid oid - 对象在其系统表内的OID,如果对象不是普通的数据库对象,则为NULL。 objsubid smallint - 对于表的一个字段,这是字段编号;对于其他对象类型,这个字段是零;如果这个对象不是普通数据库对象,则为NULL。 virtualtransaction text - 持有此锁或者在等待此锁的虚拟事务的虚拟id。 pid bigint - 持有或者等待这个锁的服务器线程的逻辑id。如果锁是被一个预备事务持有的,则为NULL。 sessionid bigint - 持有或者等待这个锁的会话的id。 mode text - 这个线程持有的或者是期望的锁模式。 取值为:AccessShareLock、RowShareLock、RowExclusiveLock、ShareLock、ShareRowExclusiveLock、ExclusiveLock或AccessExclusiveLock。 granted boolean - 如果锁是持有锁,则为TRUE。 如果锁是等待锁,则为FALSE。 fastpath boolean - 如果通过fast-path获得锁,则为TRUE;如果通过主要的锁表获得,则为FALSE。 locktag text - 会话等待锁信息,可通过locktag_decode()函数解析。 global_sessionid text - 全局会话id。 父主题: 其他系统视图
  • SESSION_CPU_RUNTIME SESSION_CPU_RUNTIME视图显示当前用户执行复杂作业(正在运行)时的CPU使用信息,如表1所示。 表1 SESSION_CPU_RUNTIME字段 名称 类型 描述 datid oid 连接后端的数据库OID。 usename name 登录到该后端的用户名。 pid bigint 后端线程ID。 start_time timestamp with time zone 语句执行的开始时间。如果是存储过程、函数、package,则查询的是第一个查询时间,不会随着存储过程内语句运行而改变。 min_cpu_time bigint 语句在所有DN上的最小CPU时间,单位为ms。 max_cpu_time bigint 语句在所有DN上的最大CPU时间,单位为ms。 total_cpu_time bigint 语句在所有DN上的CPU总时间,单位为ms。 query text 正在执行的语句。 node_group text 语句所属用户对应的node group。 top_cpu_dn text cpu使用量topN信息。 父主题: Session/Thread
  • PGXC_SQL_COUNT PGXC_SQL_COUNT视图可用来查看SELECT、INSERT、UPDATE、DELETE、MERGE INTO五种SQL的节点级和用户级统计结果,识别当前业务负载较重的query类型,衡量整个集群和单个节点执行某种类型查询的能力。通过对以上五类SQL查询进行计数,获得指定时刻的统计结果,经计算可以得到指定QPS等统计信息。例如,T1时刻,USER1的SELECT计数结果为X1,T2时刻为X2,则可计算得到该用户SELECT查询的QPS值为(X2-X1)\(T2-T1)。由此,可获得集群用户级QPS曲线图和集群吞吐情况,追踪每个用户的业务负载是否发生剧烈变化。如果有剧烈变化,可以定位具体的语句类型(SELECT/INSERT/UPDATE/DELETE/MERGE INTO)。同时观测QPS曲线可以获知问题发生时间点,结合其它工具,定位问题点。能够为集群性能调优、问题定位等提供依据。该视图只有monitor admin和sysadmin权限可以查看。只能在CN上查询,不支持execute direct on (dn) 'select * from PGXC_SQL_COUNT';语句。 PGXC_SQL_COUNT视图的字段与GS_SQL_COUNT一致,具体请参见GS_SQL_COUNT的字段信息。 当执行用户的MERGE INTO语句时,若能下推,在DN上收到的是MERGE INTO语句,将在DN节点上进行MERGE INTO类型计数,相应mergeinto_count列计数增加;若不能下推,在DN上收到的是UPDATE或INSERT语句,将在DN节点上进行UPDATE或INSERT类型计数,相应的update_count列或insert_count列计数增加。 父主题: 其他系统视图
  • GS_MATVIEW GS_MATVIEW系统表提供了关于数据库中每一个物化视图的信息。 表1 GS_MATVIEW字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 matviewid oid 物化视图的oid。 mapid oid 物化视图map表的oid,map表为物化视图关联表,与物化视图一一对应。全量物化视图不存在对应的map表,该字段为0。 ivm boolean 物化视图的类型,t为增量物化视图,f为全量物化视图。 needrefresh boolean 保留字段。 refreshtime timestamp without time zone 物化视图上一次刷新时间,若未刷新则为null。仅对DN上的增量物化视图维护该字段,其余情况均为null。 父主题: 物化视图
  • GaussDB 的DROP、TRUNCATE、DELETE这三种删除数据的方式主要区别是什么? 答:DROP、TRUNCATE、DELETE这三种删除方式的区别主要体现在删除的速度和删除的范围上,具体如下: DROP语句的删除速度最快,可以删除整个表,包括表结构、数据、索引和权限。 TRUNCATE语句的删除速度中等,可以删除表中的所有数据,但不删除表结构。 DELETE语句的删除速度最慢,可以根据条件删除表中的数据,但不包括表结构。 父主题: FAQ
  • current_setting(setting_name) 描述:当前的设置值。 返回值类型:text 备注:current_setting用于以查询形式获取setting_name的当前值。和SQL语句SHOW是等效的。比如: 1 2 3 4 5 6 gaussdb=# SELECT current_setting('datestyle'); current_setting ----------------- ISO, MDY (1 row)
  • set_config(setting_name, new_value, is_local) 描述:设置参数并返回新值。 返回值类型:text 备注:set_config将参数setting_name设置为new_value,如果is_local为true,则new_value将只应用于当前事务。如果希望new_value应用于当前会话,可以使用false,和SQL语句SET是等效的。 示例: 1 2 3 4 5 6 gaussdb=# SELECT set_config('log_statement_stats', 'off', false); set_config ------------ off (1 row)
  • LOCAL_ACTIVE_SESSION LOCAL_ACTIVE_SESSION视图显示本节点上的ACTIVE SESSION PROFILE内存中的样本,如表1所示。 表1 LOCAL_ACTIVE_SESSION字段 名称 类型 描述 sampleid bigint 采样ID。 sample_time timestamp with time zone 采样的时间。 need_flush_sample boolean 该样本是否需要刷新到磁盘。 databaseid oid 数据库ID。 thread_id bigint 线程的ID。 sessionid bigint 会话的ID。 start_time timestamp with time zone 会话的启动时间。 event text 具体的事件名称。 lwtid integer 当前线程的轻量级线程号。 psessionid bigint streaming线程的父线程。 tlevel integer streaming线程的层级。与执行计划的层级(id)相对应。 smpid integer smp执行模式下并行线程的并行编号。 userid oid session用户的id。 application_name text 应用的名称。 client_addr inet client端的地址。 client_hostname text client端的名称。 client_port integer 客户端用于与后端通讯的TCP端口号。 query_id bigint debug query id。 unique_query_id bigint unique query id。 user_id oid unique query的key中的user_id。 cn_id integer cn id,在DN上表示该unique sql来自该CN节点,unique query的key中的cn_id。 unique_query text 规范化后的UniqueSQL文本串。 locktag text 会话等待锁信息,可通过locktag_decode解析。 lockmode text 会话等待锁模式。 block_sessionid bigint 如果会话正在等待锁,阻塞该会话获取锁的会话标识。 final_block_sessionid bigint 表示源头阻塞会话id。 wait_status text 描述event列的更多详细信息。 global_sessionid text 全局会话ID。 xact_start_time timestamp with time zone 事务开始时间。 query_start_time timestamp with time zone 语句开始执行时间。 state text 当前语句状态。 可能取值为:active、idle in transaction、fastpath function call、idle in transaction (aborted)、disabled、retrying。 event_start_time timestamp with time zone wait event的开始时间。 current_xid xid 当前事务ID。 top_xid xid 顶层事务ID。 parent_unique_sql_id bigint 调用本条语句的父语句SQL_Id。 control_status text 当进行异常SQL CPU资源管控时为under_cpu_throttle,否则为normal。 top_unique_query_id bigint 该字段展示存储过程顶层SQL的unique_query_id。 top_unique_query text 该字段展示存储过程顶层SQL的unique_query语句。 父主题: Session/Thread
  • 参数说明 VERBOSE 启用显示进度信息。 如果指定了VERBOSE,ANALYZE发出进度信息,表明目前正在处理的表。各种有关表的统计信息也会打印出来。 table_name 需要分析的特定表的表名(可能会带模式名),如果省略,将对数据库中的所有表(非外部表)进行分析。 对于ANALYZE收集统计信息,目前仅支持行存表的外表。 取值范围:已有的表名。 column_name,column_1_name,column_2_name 需要分析特定列的列名,默认为所有列。 取值范围:已有的列名。 partition_name 如果table为分区表,在关键字PARTITION后面指定分区名partition_name表示分析该分区表的统计信息。 取值范围:表的某一个分区名。 foreign_table_name 需要分析的特定表的表名(可能会带模式名)。 取值范围:已有的表名。 FOREIGN TABLES 分析所有当前用户权限下的外表。 index_name 需要分析的特定索引表的表名(可能会带模式名)。 取值范围:已有的表名。 FAST|COMPLETE 对于行存表,FAST模式下主要对于行存表的CRC和page header进行校验,如果校验失败则会告警;而COMPLETE模式下,则主要对行存表的指针、tuple进行解析校验。 CASCADE CASCADE模式下会对当前表的所有索引进行检测处理。 PARTITION_MODE PARTITION_MODE适用于分区表级联收集统计信息,可选项和含义如下表所示。不适用于非分区表。 表1 PARTITION_MODE选项说明 PARTITION_MODE选项 含义 ALL 收集整表、一级分区的统计信息。 GLOBAL 收集整表的统计信息。 PARTITION 收集一级分区的统计信息。 GLOBAL AND PARTITION 收集整表、一级分区的统计信息。 ALL COMPLETE 收集整表、一级分区的统计信息。 AUTO 缺省值,以statistic_granularity或default_statistic_granularity中配置的参数为准,其中表级参数statistic_granularity的优先级高于全局参数default_statistic_granularity。 其中,ALL和ALL COMPLETE的区别为:ALL_COMPLETE模式下,采用更高的采样率,相应地,计算统计信息的耗时会更长。 从505.0.0之前版本升级到505.0.0及更高版本时,在升级观察期期间,PARTITION_MODE不生效,其行为与升级前版本保持一致。 analyze整库时,不支持指定partition mode,即不支持analyze with global等语法。 analyze整库时,支持设置default_statistic_granularity为GLOBAL或ALL,此时analyze行为和default_statistic_granularity的定义相同;当default_statistic_granularity设置为其他值时,analyze行为退化为GLOBAL行为。
  • 示例 收集表的的统计信息。 --创建customer_info表。 gaussdb=# CREATE TABLE customer_info( wr_returned_date_sk INTEGER , wr_returned_time_sk INTEGER , wr_item_sk INTEGER NOT NULL ,wr_refunded_customer_sk INTEGER ) DISTRIBUTE BY HASH (wr_item_sk); --使用ANALYZE语句更新统计信息。 gaussdb=# ANALYZE customer_info; --使用ANALYZE VERBOSE语句更新统计信息,并输出customer_info表的相关信息。 gaussdb=# ANALYZE VERBOSE customer_info; INFO: analyzing "public.customer_info"(cn_5002 pid=53078) --使用ANALYZE VERBOSE输出customer_info表的wr_returned_time_sk列信息。 gaussdb=# ANALYZE VERBOSE customer_info(wr_returned_time_sk); INFO: analyzing "public.customer_info"(cn_5002 pid=53078) 收集分区表的统计信息。 --创建分区表。 gaussdb=# CREATE TABLE customer_par( wr_returned_date_sk INTEGER , wr_returned_time_sk INTEGER , wr_item_sk INTEGER NOT NULL, wr_returned_customer_sk INTEGER) DISTRIBUTE BY HASH (wr_item_sk)PARTITION BY RANGE(wr_returned_date_sk)(PARTITION P1 VALUES LESS THAN(2452275),PARTITION P2 VALUES LESS THAN(2452640),PARTITION P3 VALUES LESS THAN(2453000),PARTITION P4 VALUES LESS THAN(MAXVALUE))ENABLE ROW MOVEMENT; --使用ANALYZE语句更新统计信息。 gaussdb=# ANALYZE customer_par; --使用ANALYZE VERBOSE输出customer_par表的相关信息。 gaussdb=# ANALYZE VERBOSE customer_par; INFO: analyzing "public.customer_par"(cn_5001 pid=446617) --使用ANALYZE VERBOSE输出P1一级分区表的相关信息。 gaussdb=# ANALYZE VERBOSE customer_par PARTITION(P1); INFO: analyzing "public.customer_par"(cn_5001 pid=446617) 手动收集多列统计信息。 --手动收集wr_returned_date_sk、wr_returned_time_sk这两列的统计信息。 gaussdb=# ANALYZE VERBOSE customer_info (wr_returned_date_sk,wr_returned_time_sk); INFO: analyzing "public.customer_par"(cn_5001 pid=446617) 自动收集多列统计信息。 --给customer_info表创建索引。 gaussdb=# CREATE INDEX customer_index ON customer_info USING btree(wr_returned_date_sk,wr_returned_time_sk,wr_item_sk,wr_refunded_customer_sk); --设置auto_statistic_ext_columns参数为4。 gaussdb=# set auto_statistic_ext_columns=4; --自动收集多列统计信息。 gaussdb=# ANALYZE VERBOSE customer_info; INFO: analyzing "public.customer_info"(cn_5001 pid=446617) 检测当前库的数据文件。 gaussdb=# ANALYZE VERIFY FAST; 检测表和索引的数据文件。 --检查customer_info表。 gaussdb=# ANALYZE VERIFY FAST customer_info; --检查customer_index索引。 gaussdb=# ANALYZE VERIFY FAST customer_index; 检测表分区的数据文件。 --检查customer_par分区表中的P1分区。 gaussdb=# ANALYZE VERIFY FAST customer_par PARTITION (P1); 删除数据。 --删除索引customer_index。 gaussdb=# DROP INDEX customer_index; --删除表customer_info。 gaussdb=# DROP TABLE customer_info; --删除分区表customer_par。 gaussdb=# DROP TABLE customer_par;
  • 注意事项 ANALYZE非临时表不支持在一个匿名块、事务块、函数或存储过程内被执行。ANALYZE临时表支持存储过程中被执行,不支持统计信息回滚操作。 ANALYZE VERIFY如果不涉及远程读场景,远程读参数则不会生效。对于检测出关键系统表页面损坏的错误,将直接报错不再继续检测。 如果ANALYZE不指定参数,则默认处理当前用户拥有相应权限的表。如果参数指定了一个表参数,ANALYZE只处理指定的表。 要对一个表进行ANALYZE操作,用户必须是表的所有者或者被授予了指定表VACUUM权限,三权分立开关关闭时,默认系统管理员有该权限。数据库的所有者允许对数据库中除了共享目录以外的所有表进行ANALYZE操作(该限制意味着只有系统管理员才能真正对一个数据库进行ANALYZE操作)。ANALYZE会跳过那些用户没有权限的表。 ANALYZE不收集无法做比较或等值运算的列,例如:CURSOR类型。 如果拟分析的表成了一个空表,ANALYZE不会记录该表的统计信息,而原来已有统计信息则会保留。
  • 语法格式 收集表的统计信息。 { ANALYZE | ANALYSE } [ VERBOSE ] [ table_name [ ( column_name [, ...] ) ] ] [ WITH PARTITION_MODE ]; 收集分区表的分区统计信息。 { ANALYZE | ANALYSE } [ VERBOSE ] table_name [ ( column_name [, ...] ) ] PARTITION ( partition_name ) ; 使用关键字PARTITION,partition_name必须为一级分区名字。 分布式不支持二级分区。 收集外表的统计信息。 { ANALYZE | ANALYSE } [ VERBOSE ] { foreign_table_name | FOREIGN TABLES };
  • 功能描述 用于收集与数据库中普通表内容相关的统计信息,统计结果存储在系统表PG_STATISTIC、PG_STATISTIC_EXT下,执行ANALYZE命令后,可在上述系统表中查询收集到的统计信息,也可以通过系统视图PG_STATS、PG_EXT_STATS查询信息。执行计划生成器会使用这些统计数据,以确定最有效的执行计划。 如果没有指定参数,ANALYZE会分析当前数据库中的每个表和分区表。同时也可以通过指定table_name、column_name和partition_name参数把分析限定在特定的表、列或分区表中。 {ANALYZE|ANALYSE} VERIFY用于检测数据库中普通表的数据文件是否损坏。
  • SQL语法格式说明 表1 SQL语法格式说明 格式 意义 [ ] 表示用“[ ]”括起来的部分是可选的。 ... 表示前面的元素可重复出现。 [ x | y | ... ] 表示从两个或多个选项中选取一个或者不选。 { x | y | ... } 表示从两个或多个选项中选取一个。 [x | y | ... ] [ ... ] 表示可选多个参数或者不选,如果选择多个参数,则参数之间用空格分隔。 [ x | y | ... ] [ ,... ] 表示可选多个参数或者不选,如果选择多个参数,则参数之间用逗号分隔。 { x | y | ... } [ ... ] 表示可选多个参数,至少选一个,如果选择多个参数,则参数之间以空格分隔。 { x | y | ... } [ ,... ] 表示可选多个参数,至少选一个,如果选择多个参数,则参数之间用逗号分隔。 父主题: SQL语法
  • SUMMARY_STAT_USER_INDEXES 显示集群内所有Schema中用户自定义普通表的索引状态统计信息(在CN节点使用,对每个节点的用户自定义普通表的索引状态信息汇总求和),如表1所示。 表1 SUMMARY_STAT_USER_INDEXES字段 名称 类型 描述 schemaname name 索引所在的Schema名。 relname name 索引的表名。 indexrelname name 索引名。 idx_scan numeric 该索引上执行的索引扫描次数。 idx_tup_read numeric 该索引上扫描返回的索引项数。 idx_tup_fetch numeric 使用该索引的简单索引扫描在原表中抓取的活跃行数。 父主题: Object
  • 示例 --查询集群DN初始状态。 gaussdb=# SELECT node_name, nodeis_preferred FROM pgxc_node WHERE node_type = 'D' ORDER BY 1; node_name | nodeis_preferred -----------+------------------ dn_6001_6002_6003 | f dn_6004_6005_6006 | f dn_6007_6008_6009 | f (3 rows) --创建NODE GROUP,用上一步中查询到的真实节点名称替换dn_6001_6002_6003。 gaussdb=# CREATE NODE GROUP test_group WITH ( dn_6001_6002_6003 ); --修改创建出的NODE GROUP名称为test_group_new。需要在维护模式下(调用SET xc_maintenance_mode=on;)。 gaussdb=# SET xc_maintenance_mode=on; gaussdb=# ALTER NODE GROUP test_group RENAME TO test_group_new; --查询NODE GROUP。 gaussdb=# SELECT group_name, group_members FROM pgxc_group; group_name | group_members ----------------+------------------- group_version1 | 16384 16388 16394 test_group_new | 16384 (2 rows) --删除NODE GROUP,且关闭维护模式。 gaussdb=# DROP NODE GROUP test_group_new; gaussdb=# SET xc_maintenance_mode=off;
  • 注意事项 只有系统管理员或者被授予了NODE GROUP的ALTER权限的用户可以修改NODE GROUP信息。 修改NODE GROUP操作都是系统内部操作,除了SET DEFAULT语法之外,其他操作都需要在维护模式下(调用SET xc_maintenance_mode=on;)。 ALTER NODE GROUP语法仅仅应该在数据库内部使用,使用者不应该手动调用这些SQL语句,否则会导致数据库系统数据不一致。
  • 语法格式 1 2 3 4 5 6 7 8 9 ALTER NODE GROUP groupname { SET DEFAULT | RENAME TO new_group_name | SET TABLE GROUP new_group_name | COPY BUCKETS FROM src_group_name | ADD NODE ( nodename [, ... ] ) | DELETE NODE ( nodename [, ... ] ) | RESIZE TO dest_group_name };
  • 参数说明 groupname 需要修改的NODE GROUP名称。 取值范围:字符串,要符合标识符命名规范。 SET DEFAULT 将系统中除了groupname指定的NODE GROUP之外的其他NODE GROUP对象的in_redistribution字段设置为'y'。考虑到兼容以前版本,该语法仍然保留,且不需要设置维护模式。 RENAME TO new_group_name 将groupname指定的NODE GROUP的名称修改为new_group_name。 SET TABLE GROUP new_group_name 将所有CN节点的pgxc_class表中pgroup字段是group_name的记录修改为new_group_name。 COPY BUCKETS FROM src_group_name 从src_group_name表示的NODE GROUP中,将group_members字段和group_buckets字段的内容复制到groupname所表示的NODE GROUP中。 ADD NODE ( nodename [, ... ] ) 从groupname指定的NODE GROUP中增加指定的节点,这些新增节点在PGXC_NODE系统表中存在。该语句仅仅修改系统表,不会进行实际的节点添加和数据重分布,用户不应该直接调用该SQL语句。可以在PGXC_GROUP系统表中观察该语句的影响。 DELETE NODE ( nodename [, ... ] ) 从groupname指定的NODE GROUP中,将指定的节点移除,这些被移除的节点仍然存在于PGXC_NODE系统表中。该语句仅仅修改系统表,不会进行实际的节点移除和数据重分布,用户不应该直接调用该SQL语句。可以在PGXC_GROUP系统表中观察该语句的影响。 RESIZE TO dest_group_name 设置集群resize操作标志,将groupname所表示的NODE GROUP设置为重分布的源NODE GROUP,并取消is_installation标志;同时将desst_group_name设置为重分布的目的NODE GROUP,并设置is_installation标志。
  • DB_TAB_PRIVS DB_TAB_PRIVS视图记录当前用户可访问的所有对象的授权信息。所有用户都可以访问该视图。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 DB_TAB_PRIVS字段 名称 类型 描述 grantor character varying(128) 执行授权的用户名。 grantee character varying(128) 被授予权限的用户或角色的名称。 table_schema character varying(128) 对象的模式。 table_name character varying(128) 对象的名称。 privilege character varying(40) 对象上的权限,包括USAGE、UPDATE、DELETE、INSERT、CONNECT、SELECT、EXECUTE。 grantable character varying(3) 该授权是否包含GRANT选项。 YES:包含GRANT选项。 NO:不包含GRANT选项。 type character varying(24) 对象的类型,包括NODE GROUP、COLUMN_ENCRYPTION_KEY、PACKAGE、COLUMN、TABLE、VIEW、SEQUENCE、TYPE、INDEX、DATABASE、DIRECTORY、FOREIGN DATA WRAPPER、FOREIGN SERVER、LANGUAGE、SCHEMA、TEMPLATE、FUNCTION、PROCEDURE、TABLESPACE。 hierarchy character varying(3) 暂不支持,值为NULL。 common character varying(3) 暂不支持,值为NULL。 inherited character varying(3) 暂不支持,值为NULL。 父主题: 用户和权限管理
  • 基于Psycopg开发 Psycopg是一种用于执行SQL语句的PythonAPI,可以为 GaussDB数据库 提供统一访问接口,应用程序可基于它进行数据操作。Psycopg2是对libpq的封装,主要使用C语言实现,既高效又安全。它具有客户端游标和服务器端游标、异步通信和通知、支持“COPY TO/COPY FROM”功能。支持多种类型Python开箱即用,适配GaussDB数据类型。通过灵活的对象适配系统,可以扩展和定制适配。Psycopg2兼容Unicode。 GaussDB数据库提供了对Psycopg2特性的支持,并且支持psycopg2通过SSL模式连接。 表1 Psycopg支持平台 操作系统 平台 Python版本 EulerOS V2.0SP5 ARM64位 x86_64位 3.8.5 SUSE 12.5 x86_64位 3.8.5 EulerOS V2.0SP9 ARM64位 x86_64位 3.7.4 EulerOS V2.0SP10、Kylin v10、UnionTech20 ARM64位 x86_64位 3.7.9 EulerOS V2.0SP11 ARM64位 x86_64位 3.9.11 Huawei Cloud EulerOS 2.0 ARM64位 x86_64位 3.9.9 psycopg2在编译过程中,会链接(link)GaussDB的openssl,GaussDB的openssl与操作系统自带的openssl可能不兼容。如果遇到不兼容现象,例如提示"version 'OPENSSL_1_1_1f' not found",请使用环境变量LD_LIBRARY_PATH进行隔离,以避免混用操作系统自带的openssl与GaussDB依赖的openssl。 例如,在执行某个调用psycopg2的应用软件client.py时,将环境变量显性赋予该应用软件: export LD_LIBRARY_PATH=/path/to/gaussdb/libs:$LD_LIBRARY_PATH python client.py 其中,/path/to/pyscopg2/lib 表示GaussDB依赖的openssl库所在目录,需根据文件实际存储路径修改。 开发流程 Psycopg包 示例:常用操作 Psycopg接口参考 父主题: 应用程序开发教程
  • PG_COMM_DELAY PG_COMM_DELAY视图展示单个DN的通信库时延状态。 表1 PG_COMM_DELAY字段 名称 类型 描述 node_name text 节点名称。 remote_name text 连接对端节点名称。 remote_host text 连接对端IP地址。 stream_num integer 当前物理连接使用的stream逻辑连接数量。 min_delay integer 当前物理连接一分钟内探测到的最小时延。单位:微秒。 说明: 负数结果无效,请重新等待时延状态更新后再执行。 average integer 当前物理连接一分钟内探测时延的平均值。单位:微秒。 max_delay integer 当前物理连接一分钟内探测到的最大时延。单位:微秒。 父主题: 通信
  • max_undo_workers 参数说明:异步回滚调用的undoworker线程数量,参数重启生效。 参数类型:整型 参数单位:无 取值范围:1 ~ 100 默认值:5 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:只影响同时并发进行异步回滚的最大线程数,设置过小可能会导致异步回滚速度慢,在系统中存在大量需要异步回滚的事务时,极低概率会影响 undo 回收的速度。当机器配置不高,系统中又存在大量需要异步回滚的事务时,该值设置过大会导致同时拉起的异步回滚线程数多,占用一定的系统资源。
  • PGXC_CLASS PGXC_CLASS系统表存储每张表的复制或分布信息。 表1 PGXC_CLASS字段 名称 类型 描述 pcrelid oid 表的OID。 pclocatortype "char" 定位器类型。 H:hash G:Range L:List M:Modulo N:Round Robin R:Replication U:MurmurHash pchashalgorithm smallint 使用哈希算法分布元组。 1:默认的哈希算法。 2:MURMURHASH算法。 pchashbuckets smallint 哈希容器的值。 pgroup name 节点群的名称。 redistributed "char" 表已经完成重分布。 redis_order integer 重分布的顺序。该值等于0的表在本轮重分布过程中不进行重分布。 pcattnum int2vector 用作分布键的列标号。 nodeoids oidvector_extend 表分布的节点OID列表。 options text 系统内部保留字段,存储扩展状态信息。 diskey text SQL建表语句中,DISTRIBUTE BY子句括号中分布列表达式的字符串内容。目前只支持MURMURHASH分布。 diskeyexprs pg_node_tree diskey通过pack_node_to_string()函数序列化得到的字符串信息。 父主题: 其他系统表
  • PG_STAT_DATABASE_CONFLI CTS PG_STAT_DATABASE_CONFLICTS视图显示数据库冲突状态的统计信息。具体字段信息如表1所示。 表1 PG_STAT_DATABASE_CONFLICTS字段 名称 类型 描述 datid oid 数据库标识。 datname name 数据库名称。 confl_tablespace bigint 冲突的表空间的数目。 confl_lock bigint 冲突的锁数目。 confl_snapshot bigint 冲突的快照数目。 confl_bufferpin bigint 冲突的缓冲区数目。 confl_deadlock bigint 冲突的死锁数目。 父主题: 其他系统视图
  • PG_RLSPOLICIES PG_RLSPOLICIES视图显示行级访问控制策略的信息。初始化用户和具有sysadmin属性的用户可以查看全部的策略信息,其他用户只能查看自己所拥有表上的策略信息。 表1 PG_RLSPOLICIES字段 名称 类型 描述 schemaname name 行级访问控制策略作用的表对象所属的模式名称。 tablename name 行级访问控制策略作用的表对象名称。 policyname name 行级访问控制策略名称。 policypermissive text 行级访问控制策略的表达式拼接方式。取值范围: PERMISSIVE:宽容性策略,用OR表达式拼接。 RESTRICTIVE:限制性策略,用AND表达式拼接。 policyroles name[] 行级访问控制策略影响的用户列表,不指定表示影响所有的用户。 policycmd text 行级访问控制策略影响的SQL操作。 policyqual text 行级访问控制策略的表达式。 父主题: 用户和权限管理
共100000条
提示

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