华为云用户手册

  • MY_COL_PRIVS MY_COL_PRIVS视图显示当前用户作为对象所有者、授权者或被授予者时的列权限授予信息。默认所有用户都可以访问。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 MY_COL_PRIVS字段 名称 类型 描述 grantor character varying(128) 执行授权的用户名。 owner character varying(128) 对象的所有者。 grantee character varying(128) 被授予权限的用户或角色的名称。 table_schema character varying(128) 对象的Schema。 table_name character varying(128) 对象的名称。 column_name character varying(128) 列的名称。 privilege character varying(40) 列上的权限。 grantable character varying(3) 表示是否授予特权。 YES:表示授予特权。 NO:表示不授予特权。 common character varying(3) 暂不支持,值为NULL。 inherited character varying(3) 暂不支持,值为NULL。 父主题: 系统视图
  • PG_CLASS PG_CLASS系统表存储数据库对象信息及其之间的关系。 表1 PG_CLASS字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 relname name 表、索引、视图等对象的名称。 relnamespace oid 包含这个关系的名称空间的OID。 reltype oid 对应这个表的行类型的数据类型(索引为零,因为索引没有pg_type记录)。 relowner oid 关系所有者。 relam oid 如果行是索引,则就是所用的访问模式(B-tree等)。 relfilenode oid 这个关系在磁盘上的文件的名称,如果没有则为0。 reltablespace oid 这个关系存储所在的表空间。如果为零,则意味着使用该数据库的缺省表空间。如果关系在磁盘上没有文件,则这个字段没有什么意义。 relpages double precision 以页(大小为BLCKSZ)为单位的该表在磁盘上的大小,它只是优化器用的一个近似值。 reltuples double precision 表中行的数目,只是优化器使用的一个估计值。 relallvisible integer 被标识为全可见的表中的页的数量。此字段是优化器用来做SQL执行优化使用的。VACUUM、ANALYZE和一些DDL语句(例如,CREATE INDEX)会引起此字段更新。 reltoastrelid oid 与该表关联的TOAST表的OID ,如果没有则为0。 TOAST表在一个从属表里“离线”存储大字段。 reltoastidxid oid 对于TOAST表是它的索引的OID,如果不是TOAST表则为0。 relhasindex boolean 如果它是一个表而且至少有(或者最近有过)一个索引,则为真。 它是由CREATE INDEX设置的,但DROP INDEX不会立即将它清除。如果VACUUM进程检测一个表没有索引,将会把它将清理relhasindex字段,将值设置为假。 relisshared boolean 如果该表在整个集群中由所有数据库共享则为真,否则为假。只有某些系统表(比如pg_database)是共享的。 relpersistence "char" p:表示永久表。 u:表示非日志表。 t:表示临时表。 g:表示全局临时表。 relkind "char" r:表示普通表。 i:表示索引。 G:表示全局二级索引。 S:表示序列。 v:表示视图。 t:表示TOAST表。 f:表示外表。 m:表示物化视图。 e:表示STREAM对象。 o:表示CONTVIEW对象。 relnatts smallint 关系中用户字段数目(除了系统字段以外)。在12.2.46 PG_ATTRIBUTE里肯定有相同数目对应行。 relchecks smallint 表里的检查约束的数目,参阅12.2.53 PG_CONSTRAINT表。 relhasoids boolean 如果为关系中每行都生成一个OID则为真,否则为假。 relhaspkey boolean 如果这个表有一个(或者曾经有一个)主键,则为真,否则为假。 relhasrules boolean 如表有规则就为真。是否有规则可参考系统表12.2.87 PG_REWRITE。 relhastriggers boolean True表示表中有触发器,或者曾经有过触发器。系统表12.2.99 PG_TRIGGER中记录了表和视图的触发器。 relhassubclass boolean 如果有(或者曾经有)任何继承的子表,为真,否则为假。 relcmprs tinyint 表示是否启用表的压缩特性。需要特别注意,当且仅当批量插入才会触发压缩,普通的CRUD并不能够触发压缩。 0表示其他不支持压缩的表(主要是指系统表,不支持压缩属性的修改操作)。 1表示表数据的压缩特性为NOCOMPRESS或者无指定关键字。 2表示表数据的压缩特性为COMPRESS。 relhasclusterkey boolean 是否有局部聚簇存储。 true:表示有。 false:表示没有。 relrowmovement boolean 针对分区表进行update操作时,是否允许行迁移。 true:表示允许行迁移。 false:表示不允许行迁移。 parttype "char" 表或者索引是否具有分区表的性质。 p:表示带有分区表性质。 n:表示没有分区表特性。 relfrozenxid xid32 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪该表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 为保持前向兼容,保留此字段,新增relfrozenxid64用于记录此信息。 relacl aclitem[] 访问权限。aclitem类型说明可以参考aclitem类型。 查询的回显结果为以下形式: 1 user1=privs/user2 表示user2赋予user1的权限为privs 1 =privs/user3 表示user3赋予public角色的权限为privs 其中user1,user2和user3为数据库中已存在的用户/角色名,privs为数据库中支持的权限。权限的参数说明请参见表2。 reloptions text[] 表或索引的访问方法,使用"keyword=value"格式的字符串。 relreplident "char" 逻辑解码中解码列的标识: d:默认 (主键,如果存在)。 n:无。 f:所有列。 i:索引的indisreplident被设置或者为默认。 relfrozenxid64 xid 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪该表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 relbucket oid 当前表是否包含hash bucket分片。有效的OID指向pg_hashbucket表中记录的具体分片信息。NULL表示不包含hash bucket分片。 relbucketkey int2vector 表示hash分区列信息,NULL表示不包含。 relminmxid xid 该表中所有在这个之前的多事务ID已经被一个事务ID替换。该字段用于跟踪该表是否需要为了防止多事务ID重叠或者允许收缩pg_clog而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 表2 权限的参数说明 参数 参数说明 r SELECT(读) w UPDATE(写) a INSERT(插入) d DELETE D TRUNCATE x REFEREN CES t TRIGGER X EXECUTE U USAGE C CREATE c CONNECT T TEMPORARY A ALTER P DROP m COMMENT i INDEX v VACUUM * 给前面权限的授权选项 父主题: 系统表
  • PV_OS_RUN_INFO PV_OS_RUN_INFO视图显示当前操作系统运行的状态信息。 表1 PV_OS_RUN_INFO字段 名称 类型 描述 id integer 编号。 name text 操作系统运行状态名称。 value numeric 操作系统运行状态值。 comments text 操作系统运行状态注释。 cumulative boolean 操作系统运行状态的值是否为累加值。 父主题: 系统视图
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 DECLARE a text; BEGIN DBE_SESSION.set_context('test', 'gaussdb', 'one'); --设置名为test的context下属性为gaussdb的值为one a := DBE_SESSION.search_context('test', 'gaussdb'); DBE_OUTPUT.PRINT_LINE(a); DBE_SESSION.clear_context('test', 'test','gaussdb'); END; / -- 预期结果为: one ANONYMOUS BLOCK EXECUTE
  • GS_SLOW_QUERY_INFO GS_SLOW_QUERY_INFO视图显示当前节点上已经转储的慢查询信息。此数据是从内核中转储到系统表中的数据。当设置GUC参数enable_resource_record为on时,系统会定时(周期为3分钟)将内核中query信息导入GS_WLM_SESSION_QUERY_INFO_ALL系统表,开启此功能会占用系统存储空间并对性能有一定影响。用户通过查询GS_SLOW_QUERY_INFO视图,可以查看已经转储的慢查询信息,本版本中已废弃。 表1 GS_SLOW_QUERY_INFO字段 名称 类型 描述 dbname text 数据库名称。 schemaname text schema名称。 nodename text 节点名称。 username text 用户名。 queryid bigint 归一化ID。 query text query语句。 start_time timestamp with time zone 开始执行时间。 finish_time timestamp with time zone 结束执行时间。 duration bigint 执行持续时间(毫秒)。 query_plan text 计划信息。 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 Cache加载次数。 n_blocks_hit bigint Cache命中数。 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上的编译时间(单位:微秒)。 net_send_time bigint 网络上的时间花费(单位:微秒)。 data_io_time bigint IO上的时间花费(单位:微秒)。 父主题: Query
  • GLOBAL_STAT_XACT_SYS_TABLES 显示各节点Schema中系统表的事务状态信息(在CN节点使用,不同节点下相同表名的事务状态信息不进行汇总)。 表1 GLOBAL_STAT_XACT_SYS_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更新行数(即没有更新索引列的行数)。 父主题: Object
  • 优化说明 测试发现由于两表结果集过大,导致nestloop耗时过长,超过一小时未返回结果,因此性能优化的关键是消除nestloop,让join使用更高效的hashjoin。从语义等价的角度消除any-clause,SQL改写如下: 1 selectls_pid_cusr1,COALESCE(max(round(ym/365)),0)from( ( SELECT ls_pid_cusr1,(current_date-bthdate) as ym FROM calc_empfyc_c1_result_tmp_t1 t1,p10_md_tmp_t2 t2 WHERE t1.ls_pid_cusr1 = t2.id and t1.ls_pid_cusr1 != t2.id15 ) union all ( SELECT ls_pid_cusr1,(current_date-bthdate) as ym FROM calc_empfyc_c1_result_tmp_t1 t1,p10_md_tmp_t2 t2 WHERE t1.ls_pid_cusr1 = id15 ))GROUP BY ls_pid_cusr1; 优化后的SQL查询由两个等值join的子查询构成,而每个子查询都可以走更适合此场景的hashjoin。优化后的执行计划如下 优化后,从超过1个小时未返回结果优化到7s返回结果。
  • 现象描述 in-clause/any-clause是常见的SQL语句约束条件,有时in或any后面的clause都是常量,类似于: 1 select count(1) from calc_empfyc_c1_result_tmp_t1 where ls_pid_cusr1 in (‘20120405’, ‘20130405’); 或者 1 select count(1) from calc_empfyc_c1_result_tmp_t1 where ls_pid_cusr1 in any(‘20120405’, ‘20130405’); 但是也有一些如下的特殊用法: 1 SELECT ls_pid_cusr1,COALESCE(max(round((current_date-bthdate)/365)),0)FROM calc_empfyc_c1_result_tmp_t1 t1,p10_md_tmp_t2 t2WHERE t1.ls_pid_cusr1 = any(values(id),(id15))GROUP BY ls_pid_cusr1; 其中,id、id15为p10_md_tmp_t2中的两列,“t1.ls_pid_cusr1 = any(values(id),(id15))”等价于“t1.ls_pid_cusr1 = id or t1.ls_pid_cusr1 = id15”。 因此join-condition实质上是一个不等式,这种非等值的join操作必须使用nestloop连接,对应执行计划如下:
  • wal_buffers 参数说明:设置用于存放WAL数据的共享内存空间的XLOG_BLCKSZ数,XLOG_BLCKSZ的大小默认为8KB。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:-1~218,最小值为-1,最大值为262144,单位为8KB。 如果设置为-1,表示wal_buffers的大小随着参数shared_buffers自动调整,默认为shared_buffers的1/32。当该值小于8时,会被强制设置为8;当该值大于2048时,会被强制设置为2048。 如果设置为其他值,当小于4时,会被强制设置为4。 独立部署:1GB(60核CPU/480G内存,32核CPU/256G内存);512MB(16核CPU/128G内存);256MB(8核CPU/64G内存);128MB(4核CPU/32G内存);64MB(4核CPU/16G内存) 设置建议:每次事务提交时,WAL缓冲区的内容都写入到磁盘中,因此设置为很大的值不会带来明显的性能提升。如果将它设置成几百兆,就可以在有很多即时事务提交的服务器上提高写入磁盘的性能。根据经验来说,默认值可以满足大多数的情况。
  • wal_sync_method 参数说明:设置向磁盘强制更新WAL数据的方法。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 如果将fsync关闭,这个参数的设置就没有意义,因为所有数据更新都不会强制写入磁盘。 取值范围:枚举类型 open_datasync表示用带O_DSYNC选项的open()打开“WAL”文件。 fdatasync表示每次提交的时候都调用fdatasync()(支持suse10和suse11)。 fsync_writethrough表示每次提交的时候调用fsync()强制把缓冲区任何数据写入磁盘。 由于历史原因,Windows平台支持将wal_sync_method设置为fsync_writethrough。在windows平台上fsync_writethrough和fsync等效。 fsync表示每次提交的时候调用fsync()(支持suse10和suse11)。 open_sync表示用带O_SYNC选项的open()写“WAL”文件(支持suse10和suse11)。 不是所有的平台都支持以上参数。 默认值:fdatasync
  • commit_delay 参数说明:表示一个已经提交的数据在WAL缓冲区中存放的时间。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置为非 0 值时事务执行commit后不会立即写入WAL中,而仍存放在WAL缓冲区中,等待WalWriter进程周期性写入磁盘。 如果系统负载很高,在延迟时间内,其他事务可能已经准备好提交。但如果没有事务准备提交,这个延迟就是在浪费时间。 取值范围:整型, 0~100000(微秒),其中0表示无延迟。 默认值:0
  • full_page_writes 参数说明:设置 GaussDB 服务器在检查点之后对页面的第一次修改时,是否将每个磁盘页面的全部内容写到WAL日志中。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置这个参数是因为在操作系统崩溃过程中可能磁盘页面只写入了一部分内容,从而导致在同一个页面中包含新旧数据的混合。在崩溃后的恢复期间,由于在WAL日志中存储的行变化信息不够完整,因此无法完全恢复该页。把完整的页面影像保存下来就可以保证页面被正确还原,代价是增加了写入WAL日志的数据量。 关闭此参数,在系统崩溃的时候,可能无法恢复原来的数据。如果服务器硬件的特质(比如电池供电的磁盘控制器)可以减小部分页面的写入风险,或者文件系统特性支持(比如ReiserFS 4),并且清楚知道写入风险在一个可以接受的范畴,可以关闭这个参数。 取值范围:布尔型 on表示启用此特性。 off表示关闭此特性。 默认值:on
  • wal_flush_timeout 参数说明:遍历WalInsertStatusEntryTbl的超时时间。Xlog刷盘自适应控制的刷盘IO遍历WalInsertStatusEntryTbl等待的最大时间。 该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。 如果时间过长可能造成Xlog刷盘频率降低,降低Xlog处理性能。 取值范围:整型, 0 ~ 90000000(微秒) 默认值:2us
  • wal_level 参数说明:设置写入WAL信息量的级别,不能为空或被注释掉。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 如果需要启用WAL日志归档和主备机的数据流复制,必须将此参数设置为archive、hot_standby或者logical。 如果该参数设置为archive或minimal,则hot_standby必须设置为off,因为分布式环境下该参数不支持设置hot_standby为off,因此不建议该参数设置为archive或minimal,否则数据库将无法启动。 取值范围:枚举类型 minimal 优点:一些重要操作(包括创建表、创建索引、簇操作和表的复制)都能安全的跳过,这样就可以使操作变得更快。 缺点:WAL仅提供从数据库服务器崩溃或者紧急关闭状态恢复时所需要的基本信息,无法用WAL归档日志恢复数据。 archive 这个参数增加了WAL归档需要的日志信息,从而可以支持数据库的归档恢复。 hot_standby 这个参数进一步增加了在备机上运行的SQL查询的信息,这个参数只能在数据库服务重新启动后生效。 为了在备机上开启只读查询,wal_level必须在主机上设置成hot_standby,并且备机必须打开hot_standby参数。hot_standby和archive级别之间的性能只有微小的差异,如果它们的设置对产品的性能影响有明显差异,欢迎反馈。 logical 设置为logical后才可以进行逻辑日志解析,设置后xlog日志中会额外记录主键信息。 默认值:hot_standby
  • fsync 参数说明:设置GaussDB服务器是否使用fsync()系统函数(请参见wal_sync_method)确保数据的更新及时写入物理磁盘中。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 使用fsync()系统函数可以保证在操作系统或者硬件崩溃的情况下将数据恢复到一个已知的状态。 如果将此参数关闭,可能会在系统崩溃时无法恢复原来的数据,导致数据库不可用。 取值范围:布尔型 on表示使用fsync()系统函数。 off表示不使用fsync()系统函数。 默认值:on
  • synchronous_commit 参数说明:设置当前事务的同步方式。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 通常情况下,一个事务产生的日志的同步顺序如下: 主机将日志内容写入本地内存。 主机将本地内存中的日志写入本地文件系统。 主机将本地文件系统中的日志内容刷盘。 主机将日志内容发送给备机。 备机接收到日志内容,存入备机内存。 备机将备机内存中的日志写入备机文件系统。 备机将备机文件系统中的日志内容刷盘。 备机回放日志,完成对数据文件的增量更新。 取值范围:枚举类型 on(true, yes, 1):表示主机事务提交需要等待备机将对应日志刷新到磁盘。 off(false, no, 0):表示主机事务提交无需等待主机自身将对应日志刷新到磁盘,通常也称为异步提交。 local:表示主机事务提交需要等待主机自身将对应日志刷新到磁盘,通常也称为本地提交。 remote_write:表示主机事务提交需要等待备机将对应日志写到文件系统(无需刷新到磁盘)。 remote_receive:表示主机事务提交需要等待备机接收到对应日志数据(无需写入文件系统)。 remote_apply:表示主机事务提交需要等待备机完成对应日志的回放操作。 true:同on。 false:同off。 yes:同on。 no:同off。 1:同on。 0:同off。 2:同remote_apply。 默认值:on
  • PG_COMM_RECV_STREAM PG_COMM_RECV_STREAM视图展示单个DN上所有的通信库接收流状态。 表1 PG_COMM_RECV_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:表示将会关闭逻辑连接。 query_id bigint 通信流对应的debug_query_id编号。 pn_id integer 通信流所执行查询的plan_node_id编号。 send_smp integer 通信流所执行查询send端的smpid编号。 recv_smp integer 通信流所执行查询recv端的smpid编号。 recv_bytes bigint 通信流接收的数据总量,单位Byte。 time bigint 通信流当前生命周期使用时长,单位ms。 speed bigint 通信流的平均接收速率,单位Byte/s。 quota bigint 通信流当前的通信配额值,单位Byte。 buff_usize bigint 通信流当前缓存的数据大小,单位Byte。 父主题: 系统视图
  • ADM_TAB_PARTITIONS ADM_TAB_PARTITIONS视图存储数据库下所有的一级分区信息(包括二级分区表)。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS schema下。分布式暂不支持二级分区,所以该视图中暂不存储二级分区表的一级分区信息。 表1 ADM_TAB_PARTITIONS字段 名称 类型 描述 table_owner character varying(64) 表的所有者。 table_name character varying(64) 关系表名称。 partition_name character varying(64) 分区名称。 high_value text 分区的边界值: 对于范围分区和间隔分区,显示各分区的上边界值。 对于列表分区,显示各分区的取值列表。 对于哈希分区,显示各分区的编号。 tablespace_name name 分区表的表空间名称。 schema character varying(64) 名称空间的名称。 composite character varying(3) 指示表是否为二级分区表。 subpartition_count numeric 暂不支持,值为NULL。 high_value_length integer 分区绑定值表达式长度。 partition_position numeric 分区在表中的位置。 pct_free numeric 块中可用空间的最小百分比。 pct_used numeric 暂不支持,值为NULL。 ini_trans numeric 初始事务数,默认值为4,非USTORE分区表时为NULL。 max_trans numeric 最大事务数,默认值为128,非USTORE分区表时为NULL。 initial_extent numeric 暂不支持,值为NULL。 next_extent numeric 暂不支持,值为NULL。 min_extent numeric 暂不支持,值为NULL。 max_extent numeric 暂不支持,值为NULL。 max_size numeric 暂不支持,值为NULL。 pct_increase numeric 暂不支持,值为NULL。 freelists numeric 暂不支持,值为NULL。 freelist_groups numeric 暂不支持,值为NULL。 logging character varying(7) 指示是否记录对表的更改。 compression character varying(8) 指示表分区的实际压缩属性。 compress_for character varying(30) 暂不支持,值为NULL。 num_rows numeric 暂不支持,值为NULL。 blocks numeric 暂不支持,值为NULL。 empty_blocks numeric 暂不支持,值为NULL。 avg_space numeric 暂不支持,值为NULL。 chain_cnt numeric 暂不支持,值为NULL。 avg_row_len numeric 暂不支持,值为NULL。 sample_size numeric 暂不支持,值为NULL。 last_analyzed timestamp with time zone 最近分析此分区的日期。 buffer_pool character varying(7) 用于分区块的缓冲池。 flash_cache character varying(7) 暂不支持,值为NULL。 cell_flash_cache character varying(7) 暂不支持,值为NULL。 global_stats character varying(3) 暂不支持,值为NULL。 user_stats character varying(3) 暂不支持,值为NULL。 is_nested character varying(3) 指示这是否是嵌套表分区。 parent_table_partition character varying(128) 暂不支持,值为NULL。 interval character varying(3) 指示分区是否在间隔分区表的间隔节中。分布式暂不支持间隔分区,该字段值为NO。 segment_created character varying(4) 指示表分区是否创建了段或未创建。 indexing character varying(4) 暂不支持,值为NULL。 read_only character varying(4) 暂不支持,值为NULL。 inmemory character varying(8) 暂不支持,值为NULL。 inmemory_priority character varying(8) 暂不支持,值为NULL。 inmemory_distribute character varying(15) 暂不支持,值为NULL。 inmemory_compression character varying(17) 暂不支持,值为NULL。 inmemory_duplicate character varying(13) 暂不支持,值为NULL。 cellmemory character varying(24) 暂不支持,值为NULL。 inmemory_service character varying(12) 暂不支持,值为NULL。 inmemory_service_name character varying(100) 暂不支持,值为NULL。 memoptimize_read character varying(8) 暂不支持,值为NULL。 memoptimize_write character varying(8) 暂不支持,值为NULL。 父主题: 系统视图
  • GLOBAL_IO_WAIT_INFO 显示所有节点I/O管控的实时统计信息。 表1 GLOBAL_IO_WAIT_INFO字段 名称 类型 描述 node_name text 节点名称。 device_name text 节点挂载的数据磁盘名称。 read_per_second float 读完成每秒次数。 write_per_second float 写完成每秒次数。 write_ratio float 写磁盘占总的I/O使用的比例。 io_util float 每秒I/O所占CPU总时间的百分比。 total_io_util integer 过去三次I/O所占CPU总时间的等级(取值为0~6)。 tick_count integer 更新磁盘I/O信息的周期,固定为1秒,每次读取数据前都会被清零。 io_wait_list_len integer I/O请求线程等待队列的大小,若为0,则表示当前没有I/O被管控。 父主题: Workload Manager
  • 参数说明 direction 定义抓取数据的方向。 取值范围: NEXT(缺省值) 从当前关联位置开始,抓取下一行。 PRIOR 从当前关联位置开始,抓取上一行。 FIRST 抓取查询的第一行(和ABSOLUTE 1相同)。 LAST 抓取查询的最后一行(和ABSOLUTE -1相同)。 ABSOLUTE count 抓取查询中第count行。 ABSOLUTE抓取不会比用相对位移移动到需要的数据行更快,因为下层的实现必须遍历所有中间的行。 count取值范围:有符号的整数 count为正数,就从查询结果的第一行开始,抓取第count行。当count小于当前游标位置时,涉及到rewind操作,暂不支持。 count为负数或0,涉及到反向扫描操作,暂不支持。 RELATIVE count 从当前关联位置开始,抓取随后或前面的第count行。 取值范围:有符号的整数 count为正数就抓取当前关联位置之后的第count行。 count为负数或0,涉及到反向扫描操作,暂不支持。 如果当前行没有数据的话,RELATIVE 0返回空。 count 抓取随后的count行(和FORWARD count一样)。 ALL 从当前关联位置开始,抓取所有剩余的行(和FORWARD ALL一样)。 FORWARD 抓取下一行(和NEXT一样)。 FORWARD count 与RELATIVE count的效果相同,从当前关联位置开始,抓取随后或前面的第count行。 FORWARD ALL 从当前关联位置开始,抓取所有剩余行。 BACKWARD 从当前关联位置开始,抓取前面一行(和PRIOR一样) 。 BACKWARD count 从当前关联位置开始,抓取前面的count行(向后扫描)。 取值范围:有符号的整数 count为正数就抓取当前关联位置之前的第count行。 count为负数就抓取当前关联位置之后的第abs(count)行。 如果有数据的话,BACKWARD 0重新抓取当前行。 BACKWARD ALL 从当前关联位置开始,抓取所有前面的行(向后扫描) 。 { FROM | IN } cursor_name 使用关键字FROM或IN指定游标名称。 取值范围:已创建的游标的名称。
  • 语法格式 FETCH [ direction { FROM | IN } ] cursor_name; 其中direction子句为可选参数。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 NEXT | PRIOR | FIRST | LAST | ABSOLUTE count | RELATIVE count | count | ALL | FORWARD | FORWARD count | FORWARD ALL | BACKWARD | BACKWARD count | BACKWARD ALL
  • 注意事项 如果游标定义了NO SCROLL,则不允许使用例如FETCH BACKWARD之类的反向抓取。 NEXT,PRIOR,FIRST,LAST,ABSOLUTE,RELATIVE形式在恰当地移动游标之后抓取一条记录。如果后面没有数据行,就返回一个空的结果,此时游标就会停在查询结果的最后一行之后(向后查询时)或者第一行之前(向前查询时)。 FORWARD和BACKWARD形式在向前或者向后移动的过程中抓取指定的行数,然后把游标定位在最后返回的行上;或者,如果count大于可用的行数,则在所有行之后(向后查询时)或者之前(向前查询时)。 RELATIVE 0,FORWARD 0,BACKWARD 0都要求在不移动游标的前提下抓取当前行,也就是重新抓取最近刚抓取过的行。除非游标定位在第一行之前或者最后一行之后,否则这个动作都应该成功。而当游标定位在第一行之前或者最后一行之后,不返回任何行。 当FETCH的游标上涉及非系统表时,不支持BACKWARD、PRIOR、FIRST等涉及反向获取操作。
  • 功能描述 FETCH通过已创建的游标来检索数据。 每个游标都有一个供FETCH使用的关联位置。游标的关联位置可以在查询结果的第一行之前,或者在结果中的任意行,或者在结果的最后一行之后: 游标刚创建完之后,关联位置在第一行之前。 在抓取了一些移动行之后,关联位置在检索到的最后一行上。 如果FETCH抓取完了所有可用行,它就停在最后一行后面,或者在反向抓取的情况下是停在第一行前面。 FETCH ALL或FETCH BACKWARD ALL总是把游标的关联位置放在最后一行或者在第一行前面。
  • 示例 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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 --创建一个schema。 gaussdb=# CREATE SCHEMA tpcds; --创建表tpcds.customer_address。 gaussdb=# CREATE TABLE tpcds.customer_address ( ca_address_sk INTEGER NOT NULL, ca_address_id CHARACTER(16) NOT NULL, ca_street_number INTEGER , ca_street_name CHARACTER (20) ); --向表中插入多条记录。 gaussdb=# INSERT INTO tpcds.customer_address VALUES (1, 'AAAAAAAABAAAAAAA', '18', 'Jackson'),(2, 'AAAAAAAACAAAAAAA', '362', 'Washington 6th'),(3, 'AAAAAAAADAAAAAAA', '585', 'Dogwood Washington'); --SELECT语句,用一个游标读取一个表。开始一个事务。 gaussdb=# START TRANSACTION; --建立一个名为cursor1的游标。 gaussdb=# CURSOR cursor1 FOR SELECT * FROM tpcds.customer_address ORDER BY 1; --抓取头3行到游标cursor1里。 gaussdb=# FETCH FORWARD 3 FROM cursor1; ca_address_sk | ca_address_id | ca_street_number | ca_street_name ---------------+------------------+------------------+-------------------- 1 | AAAAAAAABAAAAAAA | 18 | Jackson 2 | AAAAAAAACAAAAAAA | 362 | Washington 6th 3 | AAAAAAAADAAAAAAA | 585 | Dogwood Washington (3 rows) --关闭游标并提交事务。 gaussdb=# CLOSE cursor1; --结束一个事务。 gaussdb=# END; --VALUES子句,用一个游标读取VALUES子句中的内容。开始一个事务。 gaussdb=# START TRANSACTION; --建立一个名为cursor2的游标。 gaussdb=# CURSOR cursor2 FOR VALUES(1,2),(0,3) ORDER BY 1; --抓取头2行到游标cursor2里。 gaussdb=# FETCH FORWARD 2 FROM cursor2; column1 | column2 ---------+--------- 0 | 3 1 | 2 (2 rows) --关闭游标并提交事务。 gaussdb=# CLOSE cursor2; --结束一个事务。 gaussdb=# END; --WITH HOLD游标的使用,开启事务。 gaussdb=# START TRANSACTION; --创建一个with hold游标。 gaussdb=# DECLARE cursor1 CURSOR WITH HOLD FOR SELECT * FROM tpcds.customer_address ORDER BY 1; --抓取头2行到游标cursor1里。 gaussdb=# FETCH FORWARD 2 FROM cursor1; ca_address_sk | ca_address_id | ca_street_number | ca_street_name ---------------+------------------+------------------+-------------------- 1 | AAAAAAAABAAAAAAA | 18 | Jackson 2 | AAAAAAAACAAAAAAA | 362 | Washington 6th (2 rows) --结束事务。 gaussdb=# END; --抓取下一行到游标cursor1里。 gaussdb=# FETCH FORWARD 1 FROM cursor1; ca_address_sk | ca_address_id | ca_street_number | ca_street_name ---------------+------------------+------------------+-------------------- 3 | AAAAAAAADAAAAAAA | 585 | Dogwood Washington (1 row) --关闭游标。 gaussdb=# CLOSE cursor1; --删除表tpcds.customer_address。 gaussdb=# DROP TABLE tpcds.customer_address; --删除SCHEMA。 gaussdb=# DROP SCHEMA tpcds CASCADE;
  • hadr_recovery_point_target 参数说明:在流式容灾模式下设置hadr_recovery_point_target能够让备数据库实例完成日志刷盘的rpo时间。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0~3600 (秒) 0是指不开启日志流控,1~3600是指备机能够在hadr_recovery_point_target时间内完成日志的刷盘,可以保证主数据库实例与备数据库实例切换时日志差距能够在hadr_recovery_point_target秒内,保障备数据库实例升主日志量。hadr_recovery_point_target设置时间过小会影响主机的性能,设置过大会失去流控效果。 默认值:10(金融版(数据计算型))
  • check_sync_standby 参数说明:打开备机检查开关,主备场景下配置了正确的synchronous_standby_names参数后,当同步备故障时,主机写业务直接报错写失败。该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。 取值范围:on/off on表示开启备机检查。 off表示关闭备机检查。 默认值:off 该参数不支持在job work和自治事务中同步,有可能导致检查不生效。 若指定用户或session中未设置备机检查,开启强同步提交模式下备机故障,执行一个表的写操作会导致另一个用户或session中的同一个表的查询hang,此时需要备机恢复或者手动terminate hang住的客户端。 不支持非写操作中触发写日志的场景中(vacuum analyze,gs_clean等)开启备机检查开关。若备机不满足同步备配置,则该场景会导致业务hang,需要手动terminate。
  • hadr_recovery_time_target 参数说明:在流式容灾模式下设置hadr_recovery_time_target能够让备数据库实例完成日志写入和回放。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0~3600 (秒) 0是指不开启日志流控,1~3600是指备机能够在hadr_recovery_time_target时间内完成日志的写入和回放,可以保证主数据库实例与备数据库实例切换时能够在hadr_recovery_time_target秒完成日志写入和回放,保证备数据库实例能够快速升主。hadr_recovery_time_target设置时间过小会影响主机的性能,设置过大会失去流控效果。 默认值:60(金融版(数据计算型))
  • synchronous_standby_names 参数说明:潜在同步复制的备机名称列表,每个名称用逗号分隔。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 当前连接的同步备机是列表中的第一个名称。如果当前同步备机失去连接,则它会立即更换下一个优先级更高的备机,并将此备机的名称放入列表中。 备机名称可以通过设置环境变量PGAPPNAME指定。 取值范围:字符串。当取值为*,表示匹配任意提供同步复制的备机名称。支持按如下格式配置: ANY num_sync (standby_name [, ...]) [FIRST] num_sync (standby_name [, ...]) standby_name [, ...] 其中num_sync是事务需要等待其回复的同步复制的备机的数量,standby_name是备机的名称,FIRST以及ANY指定从所列服务器中选取同步复制的备机的策略。 ANY N (dn_instanceId1, dn_instanceId2,...)表示在括号内任选N个主机名称作为同步复制的备机名称列表。例如,ANY 1(dn_instanceId1, dn_instanceId2)表示在dn_instanceId1和dn_instanceId2中任选一个作为同步复制的备机名称。 FIRST N (dn_instanceId1, dn_instanceId2,...)表示在括号内按出现顺序的先后作为优先级选择前N个主机名称作为同步复制的备机名称列表。例如,FIRST 1 (dn_instanceId1, dn_instanceId2)表示选择dn_instanceId1作为同步复制的备机名称。 dn_instanceId1, dn_instanceId2,...和FIRST 1 (dn_instanceId1, dn_instanceId2,...)具有的含义相同。 若使用gs_guc工具设置该参数,需要如下设置: gs_guc reload -Z datanode -N @NODE_NAME@ -D @DN_PATH@ -c "synchronous_standby_names='ANY NODE 1(dn_instanceId1, dn_instanceId2)'"; 或者: gs_guc reload -Z datanode -N @NODE_NAME@ -D @DN_PATH@ -c "synchronous_standby_names='ANY 1(AZ1, AZ2)'"; 默认值:*
  • catchup2normal_wait_time 参数说明:单同步备机情况下,控制备机数据追赶(catchup)阻塞主机的最长时间。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,范围-1~10000,单位为毫秒。 -1表示主机阻塞直到备机数据追赶完成。 0表示备机数据追赶时始终不阻塞主机。 其余值表示备机数据追赶时阻塞主机的最长时间。例如,取值5000,表示当备机数据追赶完成时间还剩5s时,阻塞主机等待其完成。 默认值:-1
  • enable_stream_replication 参数说明:控制主备、主从是否进行数据和日志同步。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 此参数属于性能测试参数,用于测试带有DN备机和不带DN备机的性能参数。关闭参数后,不能进行切换、故障等异常场景测试,否则会出现主备从不一致的情况。 此参数属于受控参数,不建议正常业务场景下关闭此参数。 取值范围:布尔型 on表示打开主备、主从同步。 off表示关闭主备、主从同步。 默认值:on
共100000条
提示

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