华为云用户手册

  • PG_CURSORS PG_CURSORS视图列出了当前可用的游标。 表1 PG_CURSORS字段 名称 类型 描述 name text 游标名。 statement text 声明该游标时的查询语句。 is_holdable boolean 如果该游标是持久的(就是在声明该游标的事务结束后仍然可以访问该游标)则为TRUE,否则为FALSE。 is_binary boolean 如果该游标被声明为BINARY则为TRUE,否则为FALSE。 is_scrollable boolean 如果该游标可以滚动(就是允许以不连续的方式检索)则为TRUE,否则为FALSE。 creation_time timestamp with time zone 声明该游标的时间戳。 父主题: 系统视图
  • 全局临时表函数 pg_get_gtt_relstats(relOid) 描述:显示当前会话指定的全局临时表的基本信息。 参数:全局临时表的OID。 返回值类型:record 示例: openGauss=# select * from pg_get_gtt_relstats(74069); relfilenode | relpages | reltuples | relallvisible | relfrozenxid | relminmxid -------------+----------+-----------+---------------+--------------+------------ 74069 | 58 | 13000 | 0 | 11151 | 0 (1 row) pg_get_gtt_statistics(relOid, attnum, ''::text) 描述:显示当前会话指定的全局临时表的单列统计信息。 参数:全局临时表的OID和属性attnum。 返回值类型:record 示例: openGauss=# select * from pg_get_gtt_statistics(74069,1,''::text); starelid | starelkind | staattnum | stainherit | stanullfrac | stawidth | stadistinct | stakind1 | stakind2 | stakind3 | stakind4 | stakind5 | staop1 | staop2 | staop3 | staop4 | staop5 | stanumbers1 | stanumbers2 | stanumbers3 | stanu mbers4 | stanumbers5 | stavalues1 | stavalues2 | stavalues3 | stavalues4 | stavalues5 | stadndistinct | staextinfo ----------+------------+-----------+------------+-------------+----------+-------------+----------+----------+----------+----------+----------+--------+--------+--------+--------+--------+-------------+-------------+-------------+------ -------+-------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------+------------+------------+------------+------------+---------------+------------ 74069 | c | 1 | f | 0 | 4 | -1 | 2 | 3 | 0 | 0 | 0 | 97 | 97 | 0 | 0 | 0 | | {1} | | | | {1,130,260,390,520,650,780,910,1040,1170,1300,1430,1560,1690,1820,1950,2080,2210,2340,2470,2600,2730,2860,2990,3120,3250,3380,3510,3640,3770,3900,4030,4160,4290,4420,4550,4680,4810,4940,5070,5200,5330,5460,5590,57 20,5850,5980,6110,6240,6370,6500,6630,6760,6890,7020,7150,7280,7410,7540,7670,7800,7930,8060,8190,8320,8450,8580,8710,8840,8970,9100,9230,9360,9490,9620,9750,9880,10010,10140,10270,10400,10530,10660,10790,10920,11050,11180,11310,11440,1 1570,11700,11830,11960,12090,12220,12350,12480,12610,12740,12870,13000} | | | | | 0 | (1 row) pg_gtt_attached_pid(relOid) 描述:显示正在使用指定全局临时表的所有线程pid和会话ID。当线程池开启时,如果正在使用全局临时表的会话为detach状态,pid会显示为0,sessionid为会话的ID。 参数:全局临时表的OID。 返回值类型:record 示例: openGauss=# select * from pg_gtt_attached_pid(74069); relid | pid | sessionid -------+-----------------+----------------- 74069 | 139648170456832 | 139648170456832 74069 | 139648123270912 | 139648123270912 (2 rows) dbe_perf.get_global_full_sql_by_timestamp(start_timestamp timestamp, end_timestamp timestamp) 描述:获取实例级的全量SQL(Full SQL)信息。 返回值类型:record 表1 dbe_perf.get_global_full_sql_by_timestamp参数说明 参数 类型 描述 start_timestamp timestamp SQL启动时间范围的开始时间点。 end_timestamp timestamp SQL启动时间范围的结束时间点。 dbe_perf.get_global_slow_sql_by_timestamp(start_timestamp timestamp, end_timestamp timestamp) 描述:获取实例级的慢SQL(Slow SQL)信息。 返回值类型:record 表2 dbe_perf.get_global_slow_sql_by_timestamp参数说明 参数 类型 描述 start_timestamp timestamp SQL启动时间范围的开始时间点。 end_timestamp timestamp SQL启动时间范围的结束时间点。 statement_detail_decode(detail text, format text, pretty bool) 解析全量/慢SQL语句中的details字段的信息。 表3 statement_detail_decode参数说明 参数 类型 描述 detail text SQL语句产生的事件的集合(不可读)。 format text 解析输出格式,取值为plaintext或json。 pretty bool 当format为plaintext时,是否以优雅的格式展示: true表示通过“\n”分隔事件。 false表示通过“,”分隔事件。 pg_list_gtt_relfrozenxids() 描述:显示各会话的冻结事务xid。 pid=0的行,显示所有会话中最老的冻结事务xid。 参数:无。 返回值类型:record 示例: openGauss=# select * from pg_list_gtt_relfrozenxids(); pid | relfrozenxid -----------------+-------------- 139648123270912 | 11151 139648170456832 | 11155 0 | 11151 (3 rows) 父主题: 函数和操作符
  • 扩展语法 GaussDB 提供的扩展语法如下。 表1 扩展SQL语法 类别 语法关键字 描述 创建表CREATE TABLE INHERITS ( parent_table [, ... ] ) 目前保留继承表语法,但是实际并不支持。 column_constraint: REFEREN CES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ][ ON DELETE action ] [ ON UPDATE action ] 支持用REFERENCES reftable[ ( refcolumn ) ] [ MATCH FULL |MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] 为表创建外键约束。 聚集函数 CREATE AGGREGATE 定义一个新的聚集函数。 ALTER AGGREGATE 修改一个聚集函数的定义。 DROP AGGREGATE 删除一个现存的聚集函数。 父主题: 附录
  • 参数说明 关键字PUBLIC表示一个隐式定义的拥有所有角色的组。 权限类别和参数说明,请参见GRANT的参数说明。 任何特定角色拥有的特权包括直接授予该角色的特权、从该角色作为其成员的角色中得到的权限以及授予给PUBLIC的权限。因此,从PUBLIC收回SELECT特权并不一定会意味着所有角色都会失去在该对象上的SELECT特权,那些直接被授予的或者通过另一个角色被授予的角色仍然会拥有它。类似地,从一个用户收回SELECT后,如果PUBLIC仍有SELECT权限,该用户还是可以使用SELECT。 指定GRANT OPTION FOR时,只撤销对该权限授权的权力,而不撤销该权限本身。 如用户A拥有某个表的UPDATE权限,及WITH GRANT OPTION选项,同时A把这个权限赋予了用户B,则用户B持有的权限称为依赖性权限。当用户A持有的权限或者授权选项被撤销时,必须声明CASCADE,将所有依赖性权限都撤销。 一个用户只能撤销由它自己直接赋予的权限。例如,如果用户A被指定授权(WITH ADMIN OPTION)选项,且把一个权限赋予了用户B,然后用户B又赋予了用户C,则用户A不能直接将C的权限撤销。但是,用户A可以撤销用户B的授权选项,并且使用CASCADE。这样,用户C的权限就会自动被撤销。另外一个例子:如果A和B都赋予了C同样的权限,则A可以撤销他自己的授权选项,但是不能撤销B的,因此C仍然拥有该权限。 如果执行REVOKE的角色持有的权限是通过多层成员关系获得的,则具体是哪个包含的角色执行的该命令是不确定的。在这种场合下,最好的方法是使用SET ROLE成为特定角色,然后执行REVOKE,否则可能导致删除了不想删除的权限,或者是任何权限都没有删除。
  • 语法格式 回收指定表或视图上权限。 REVOKE [ GRANT OPTION FOR ] { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | ALTER | DROP | COMMENT | INDEX | VACUUM }[, ...] | ALL [ PRIVILEGES ] } ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收表上指定字段权限。 REVOKE [ GRANT OPTION FOR ] { {{ SELECT | INSERT | UPDATE | REFERENCES | COMMENT } ( column_name [, ...] )}[, ...] | ALL [ PRIVILEGES ] ( column_name [, ...] ) } ON [ TABLE ] table_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收指定序列上权限,LARGE字段属性可选,回收语句不区分序列是否为LARGE。 1 2 3 4 5 6 7 REVOKE [ GRANT OPTION FOR ] { { SELECT | UPDATE | ALTER | DROP | COMMENT }[, ...] | ALL [ PRIVILEGES ] } ON { [ [ LARGE ] SEQUENCE ] sequence_name [, ...] | ALL SEQUENCES IN SCHEMA schema_name [, ...] } FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收指定数据库上权限。 REVOKE [ GRANT OPTION FOR ] { { CREATE | CONNECT | TEMPORARY | TEMP | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON DATABASE database_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收指定域上权限。 1 2 3 4 5 REVOKE [ GRANT OPTION FOR ] { USAGE | ALL [ PRIVILEGES ] } ON DOMAIN domain_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收指定目录上权限。 1 2 3 4 5 REVOKE [ GRANT OPTION FOR ] { { READ | WRITE | ALTER | DROP } [, ...] | ALL [ PRIVILEGES ] } ON DIRECTORY directory_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收指定外部数据源上权限。 1 2 3 4 5 REVOKE [ GRANT OPTION FOR ] { USAGE | ALL [ PRIVILEGES ] } ON FOREIGN DATA WRAPPER fdw_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收指定外部服务器上权限。 1 2 3 4 5 REVOKE [ GRANT OPTION FOR ] { { USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON FOREIGN SERVER server_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收指定函数上权限。 REVOKE [ GRANT OPTION FOR ] { { EXECUTE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON { FUNCTION {function_name ( [ {[ argmode ] [ arg_name ] arg_type} [, ...] ] )} [, ...] | ALL FUNCTIONS IN SCHEMA schema_name [, ...] } FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收指定存储过程上权限。 1 2 3 4 5 6 REVOKE [ GRANT OPTION FOR ] { { EXECUTE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON { PROCEDURE {proc_name ( [ {[ argmode ] [ arg_name ] arg_type} [, ...] ] )} [, ...] | ALL PROCEDURE IN SCHEMA schema_name [, ...] } FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收指定过程语言上权限。 1 2 3 4 5 REVOKE [ GRANT OPTION FOR ] { USAGE | ALL [ PRIVILEGES ] } ON LANGUAGE lang_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收指定大对象上权限。 REVOKE [ GRANT OPTION FOR ] { { SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] } ON LARGE OBJECT loid [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收指定模式上权限。 REVOKE [ GRANT OPTION FOR ] { { CREATE | USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON SCHEMA schema_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收指定表空间上权限。 REVOKE [ GRANT OPTION FOR ] { { CREATE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON TABLESPACE tablespace_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收指定类型上权限。 1 2 3 4 5 REVOKE [ GRANT OPTION FOR ] { { USAGE | ALTER | DROP | COMMENT } [, ...] | ALL [ PRIVILEGES ] } ON TYPE type_name [, ...] FROM { [ GROUP ] role_name | PUBLIC } [, ...] [ CASCADE | RESTRICT ]; 回收package对象的权限。 1 2 3 4 5 REVOKE [ GRANT OPTION FOR ] { { EXECUTE | ALTER | DROP | COMMENT } [, ...] | ALL [PRIVILEGES] } ON PACKAGE package_name [, ...] FROM {[GROUP] role_name | PUBLIC} [, ...] [ CASCADE | RESTRICT ]; 按角色回收角色上的权限。 REVOKE [ ADMIN OPTION FOR ] role_name [, ...] FROM role_name [, ...] [ CASCADE | RESTRICT ]; 回收角色上的sysadmin权限。 REVOKE ALL { PRIVILEGES | PRIVILEGE } FROM role_name;
  • javax.sql.PooledConnection javax.sql.PooledConnection是由连接池创建的连接接口。 表1 对javax.sql.PooledConnection的支持情况 方法名 返回值类型 支持JDBC 4 addConnectionEventListener (ConnectionEventListener listener) void Yes close() void Yes getConnection() Connection Yes removeConnectionEventListener (ConnectionEventListener listener) void Yes 父主题: JDBC接口参考
  • GLOBAL_STATIO_ALL_TABLES GLOBAL_STATIO_ALL_TABLES视图将包含各节点的数据库中每个表(包括TOAST表)的I/O的统计。 表1 GLOBAL_STATIO_ALL_TABLES字段 名称 类型 描述 node_name name 节点名称。 relid oid 表OID。 schemaname name 该表模式名。 relname name 表名。 heap_blks_read bigint 从该表中读取的磁盘块数。 heap_blks_hit bigint 此表缓存命中数。 idx_blks_read bigint 从表中所有索引读取的磁盘块数。 idx_blks_hit bigint 表中所有索引命中缓存数。 toast_blks_read bigint 此表的TOAST表读取的磁盘块数(如果存在)。 toast_blks_hit bigint 此表的TOAST表命中缓冲区数(如果存在)。 tidx_blks_read bigint 此表的TOAST表索引读取的磁盘块数(如果存在)。 tidx_blks_hit bigint 此表的TOAST表索引命中缓冲区数(如果存在)。 父主题: Cache/IO
  • STATIO_USER_TABLES STATIO_USER_TABLES视图显示命名空间中所有用户关系表的I/O状态信息。 表1 STATIO_USER_TABLES字段 名称 类型 描述 relid oid 表OID。 schemaname name 该表模式名。 relname name 表名。 heap_blks_read bigint 从该表中读取的磁盘块数。 heap_blks_hit bigint 该表缓存命中数。 idx_blks_read bigint 从表中所有索引读取的磁盘块数。 idx_blks_hit bigint 表中所有索引命中缓存数。 toast_blks_read bigint 该表的TOAST表读取的磁盘块数(如果存在)。 toast_blks_hit bigint 该表的TOAST表命中缓冲区数(如果存在)。 tidx_blks_read bigint 该表的TOAST表索引读取的磁盘块数(如果存在)。 tidx_blks_hit bigint 该表的TOAST表索引命中缓冲区数(如果存在)。 父主题: Cache/IO
  • 背景信息 在ANALYZE | ANALYSE和VACUUM语句执行过程中,系统维护一个内部的记数器,跟踪所执行的各种I/O操作的近似开销。如果积累的开销达到了vacuum_cost_limit声明的限制,则执行这个操作的进程将睡眠vacuum_cost_delay指定的时间。然后它会重置记数器然后继续执行。 这个特性是缺省关闭的。如需开启,需要把vacuum_cost_delay变量设置为一个非零值。
  • vacuum_cost_delay 参数说明:指定开销超过vacuum_cost_limit的值时,进程睡眠的时间。 要注意在许多系统上,睡眠的有效分辨率是10毫秒。因此把vacuum_cost_delay设置为一个不是10的整数倍的数值与将它设置为下一个10的整数倍作用相同。 此参数一般设置较小,常见的设置是10或20毫秒。调整此特性资源占用率时,建议调整其他参数,而不是此参数。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0~100,正数值表示打开基于开销的清理延迟特性;0表示关闭基于开销的清理延迟特性。 默认值:1
  • PG_TS_TEMPLATE PG_TS_TEMPLATE系统表包含定义文本搜索模板的记录。模板是文本搜索字典的类的实现框架。因为模板必须通过C语言级别的函数实现,索引新模板的创建必须由数据库系统管理员创建。 表1 PG_TS_TEMPLATE字段 名称 类型 引用 描述 oid oid - 行标识符(隐含属性;必须明确选择)。 tmplname name - 文本搜索模板名。 tmplnamespace oid PG_NAMESPACE.oid 包含这个模板的名称空间的OID。 tmplinit regproc PG_PROC.proname 模板的初始化函数名。 tmpllexize regproc PG_PROC.proname 模板的lexize函数名。 父主题: 系统表
  • java.sql.Driver java.sql.Driver是数据库驱动接口。 表1 对java.sql.Driver的支持情况 方法名 返回值类型 支持JDBC 4 acceptsURL(String url) boolean Yes connect(String url, Properties info) Connection Yes jdbcCompliant() boolean Yes getMajorVersion() int Yes getMinorVersion() int Yes getParentLogger() Logger Yes getPropertyInfo(String url, Properties info) DriverPropertyInfo[] Yes 父主题: JDBC接口参考
  • STAT_ALL_TABLES 本节点内数据库中每个表(包括TOAST表)的一行的统计信息。 表1 STAT_ALL_TABLES字段 名称 类型 描述 relid oid 表的OID。 schemaname name 该表的模式名。 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
  • 参数说明 SESSION 声明的参数只对当前会话起作用。如果SESSION和LOCAL都没出现,则SESSION为缺省值。 如果在事务中执行了此命令,命令的产生影响将在事务回滚之后消失。如果该事务已提交,影响将持续到会话的结束,除非被另外一个SET命令重置参数。 LOCAL 声明的参数只在当前事务中有效。在COMMIT或ROLLBACK之后,会话级别的设置将再次生效。 不论事务是否提交,此命令的影响只持续到当前事务结束。一个特例是:在一个事务里面,既有SET命令,又有SET LOCAL命令,且SET LOCAL在SET后面,则在事务结束之前,SET LOCAL命令会起作用,但事务提交之后,则是SET命令会生效。 TIME ZONE timezone 用于指定当前会话的本地时区。 取值范围:有效的本地时区。该选项对应的运行时参数名称为TimeZone,DEFAULT缺省值为PRC。 CURRENT_SCHEMA schema CURRENT_SCHEMA用于指定当前的模式。 取值范围:已存在模式名称。如果模式名不存在,会导致CURRENT_SCHEMA值为空。 SCHEMA schema 同CURRENT_SCHEMA。此处的schema是个字符串。 例如:set schema 'public'; NAMES encoding_name 用于设置客户端的字符编码。等价于set client_encoding to encoding_name。 取值范围:有效的字符编码。该选项对应的运行时参数名称为client_encoding,默认编码为UTF8。 XML OPTION option 用于设置XML的解析方式。 取值范围:CONTENT(缺省)、DOCUMENT config_parameter 可设置的运行时参数的名称。可用的运行时参数可以使用SHOW ALL命令查看。 部分通过SHOW ALL查看的参数不能通过SET设置。如max_datanodes。 value config_parameter的新值。可以声明为字符串常量、标识符、数字,或者逗号分隔的列表。DEFAULT用于把这些参数设置为它们的缺省值。
  • 语法格式 设置所处的时区。 SET [ SESSION | LOCAL ] TIME ZONE { timezone | LOCAL | DEFAULT }; 设置所属的模式。 SET [ SESSION | LOCAL ] {CURRENT_SCHEMA { TO | = } { schema | DEFAULT } | SCHEMA 'schema'}; 设置客户端编码集。 SET [ SESSION | LOCAL ] NAMES encoding_name; 设置XML的解析方式。 SET [ SESSION | LOCAL ] XML OPTION { DOCUMENT | CONTENT }; 设置其他运行时参数。 SET [ LOCAL | SESSION ] {config_parameter { { TO | = } { value | DEFAULT } | FROM CURRENT }};
  • DB_PART_TABLES DB_PART_TABLES视图显示当前用户所能访问的分区表的信息。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 DB_PART_TABLES字段 名称 类型 描述 table_owner character varying(64) 分区表的所有者名称。 table_name character varying(64) 分区表的名称。 partitioning_type text 分区表的分区策略。 说明: 当前分区表策略支持范围见CREATE TABLE PARTITION。 partition_count bigint 分区表的分区个数。 partitioning_key_count integer 分区表的分区键个数。 def_tablespace_name name 分区表的表空间名称。 schema character varying(64) 分区表的模式。 subpartitioning_type text 二级分区表的分区策略。如果分区表是一级分区表,则显示NONE。 说明: 当前二级分区表策略支持范围见CREATE TABLE SUBPARTITION。 def_subpartition_count integer 默认创建二级分区的个数,二级分区表为1,一级分区表为0。 subpartitioning_key_count integer 分区表二级分区键的个数。 父主题: 系统视图
  • PG_RANGE PG_RANGE系统表存储关于范围类型的信息,除了PG_TYPE里类型的记录。 表1 PG_RANGE字段 名称 类型 引用 描述 rngtypid oid PG_TYPE.oid 范围类型的OID。 rngsubtype oid PG_TYPE.oid 这个范围类型的元素类型(子类型)的OID。 rngcollation oid PG_COLLATION.oid 用于范围比较的排序规则的OID,如果没有则为零。 rngsubopc oid PG_OPCLASS.oid 用于范围比较的子类型的操作符类的OID。 rngcanonical regproc PG_PROC.proname 转换范围类型为规范格式的函数名,如果没有则为0。 rngsubdiff regproc PG_PROC.proname 表示用于计算范围两元素差值的函数的名字,该函数的返回值为双精度类型,如果不存在该函数则rngsubdiff字段值为0。 若元素类型是离散的,则rngcanonical决定用于范围类型的排序顺序;若元素类型是不可排序的,则rngsubopc决定用于范围类型的排序顺序;若元素类型是可排序的,则rngsubopc和rngcollation决定用于范围类型的排序顺序。 父主题: 系统表
  • memory_trace_level 参数说明:动态内存使用超过最大动态内存的90%后,记录内存申请信息的管控等级。该参数仅在use_workload_manager和enable_memory_limit打开时生效。该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:枚举型 none:表示不记录内存申请信息。 level1:动态内存使用超过最大动态内存的90%后,会记录以下信息,并将记录的内存信息保存在$GAUSSLOG/mem_log目录下。 全局内存概况。 instance,session,thread三种类型的所有内存上下文中内存占用前20的内存上下文的内存使用情况。 每个内存上下文的totalsize、freesize字段。 level2:动态内存使用超过最大动态内存的90%后,会记录以下信息,并将记录的内存信息保存在$GAUSSLOG/mem_log目录下。 全局内存概况。 instance,session,thread三种类型的所有内存上下文中内存占用前20的内存上下文的内存使用情况。 每个内存上下文的totalsize,freesize字段。 每个内存上下文上所有内存申请的详细信息,包含申请内存所在的文件,行号和大小。 默认值:level1 该参数设置为level2后,会记录每个内存上下文的内存申请详情(file,line,size字段),会对性能影响较大,需慎重设置。 记录的内存快照信息可以通过系统函数gs_get_history_memory_detail(cstring).查询。 记录的内存上下文是经过将同一类型所有重名的内存上下文进行汇总之后得到的。
  • resilience_memory_reject_percent 参数说明:用于控制内存过载逃生的动态内存占用百分比。该参数仅在GUC参数use_workload_manager和enable_memory_limit打开时生效。该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串,长度大于0 该参数分为recover_memory_percent,、overload_memory_percent 2部分,这2个部分的具体含义如下: recover_memory_percent:内存从过载状态恢复正常状态的动态内存使用占最大动态内存的百分比,当动态内存使用小于最大动态内存乘以该值对应的百分比后,停止过载逃生并放开新连接接入,取值为0~100,设置为多少表示百分之多少。 overload_memory_percent:内存过载时动态内存使用占最大动态内存的百分比,当动态内存使用大于最大动态内存乘以该值对应的百分比后,表示当前内存已经过载,触发过载逃生kill会话并禁止新连接接入,取值为0~100,设置为多少表示百分之多少。 默认值:'0,0',表示关闭内存过载逃生功能。 示例: resilience_memory_reject_percent = '70,90' 表示内存使用超过最大内存上限的90%后禁止新连接接入并kill堆积的会话,kill会话过程中内存恢复到最大内存的70%以下时停止kill会话并允许新连接接入。 最大动态内存和已使用的动态内存可以通过gs_total_memory_detail视图查询获得,最大动态内存:max_dynamic_memory,已使用的动态内存:dynamic_used_memory。 该参数如果设置的百分比过小,则会频繁触发内存过载逃生流程,会使正在执行的会话被强制退出,新连接短时间接入失败,需要根据实际内存使用情况慎重设置。 recover_memory_percent和overload_memory_percent的值可以同时为0,除此之外,recover_memory_percent的值必须要小于overload_memory_percent,否则会设置不生效。
  • segment_buffers 参数说明:设置GaussDB段页式元数据页的内存大小。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值说明:整型,16 ~ 1073741823,单位为8KB。 segment_buffers需要设置为BLCKSZ的整数倍,BLCKSZ目前设置为8KB,即segment_buffers需要设置为8KB整数倍。改变BLCKSZ的值会改变最小值。 默认值:8MB 设置建议: segment_buffers 用来缓存段页式段头的内容,属于关键元数据信息,为了提高性能建议常用的表的段头都能缓存在buffer中,不被置换出去。建议按照表的个数(包括索引和toast表)* 分区数 * 3 + 128 来设置。乘以3是因为每个表(分区)会有一些额外的元数据段,一般一个表有3个段。最后+128因为段页式表空间管理需要一定数量的buffer。 该参数设置过小会导致首次创建段页式表时耗时较久,因此请按照建议进行设置。
  • temp_buffers 参数说明:设置每个数据库会话使用的LOCAL临时缓冲区的大小。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 在每个会话的第一次使用临时表之前可以改变temp_buffers的值,之后的设置将是无效的。 一个会话将按照temp_buffers给出的限制,根据需要分配临时缓冲区。如果在一个并不需要大量临时缓冲区的会话里设置一个大的数值,其开销只是一个缓冲区描述符的大小。当缓冲区被使用,就会额外消耗8192字节。 取值范围:整型,100~1073741823,单位为8KB。 默认值:1MB
  • max_prepared_transactions 参数说明:设置可以同时处于"预备"状态的事务的最大数目。增加此参数的值会使GaussDB比系统默认设置需要更多的System V共享内存。 当GaussDB部署为主备双机时,在备机上此参数的设置必须要高于或等于主机上的,否则无法在备机上进行查询操作。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,0~262143。 默认值:200 一般不需要对事务显式进行PREPARE操作,如果业务有对事务进行显式PREPARE操作,为避免在准备步骤失败,需调大该值,大于需要进行PREPARE业务的并发数。
  • work_mem 参数说明:设置内部排序操作和Hash表在开始写入临时磁盘文件之前使用的内存大小。ORDER BY,DISTINCT和merge joins都要用到排序操作。Hash表在散列连接、散列为基础的聚集、散列为基础的IN子查询处理中都要用到。 对于复杂的查询,可能会同时并发运行好几个排序或者散列操作,每个都可以使用此参数所声明的内存量,不足时会使用临时文件。同样,好几个正在运行的会话可能会同时进行排序操作。因此使用的总内存可能是work_mem的好几倍。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,64~2147483647,单位为KB。 默认值: 256MB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存);128MB(64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存,16核CPU/128G内存);64MB(8核CPU/64G内存);32MB(4核CPU/32G内存);16MB(4核CPU/16G内存) 设置建议: 依据查询特点和并发来确定,一旦work_mem限定的物理内存不够,算子运算数据将写入临时表空间,带来5-10倍的性能下降,查询响应时间从秒级下降到分钟级。 对于串行无并发的复杂查询场景,平均每个查询有5-10关联操作,建议work_mem=50%内存/10。 对于串行无并发的简单查询场景,平均每个查询有2-5个关联操作,建议work_mem=50%内存/5。 对于并发场景,建议work_mem=串行下的work_mem/物理并发数。 对于BitmapScan的哈希表也会受到work_mem的限制,但不会被严格管控下盘。完全Lossify的情况下,哈希表每占用1MB的内存,对应一次BitmapHeapScan的16GB的页面(Ustore为32GB),达到work_mem上限后,会按此比例随数据访问量线性增长。
  • maintenance_work_mem 参数说明:设置在维护性操作(比如VACUUM、CREATE INDEX、ALTER TABLE ADD FOREIGN KEY等)中可使用的最大的内存。该参数的设置会影响VACUUM、VACUUM FULL、CLUSTER、CREATE INDEX的执行效率。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,1024~INT_MAX,单位为KB。 默认值: 2GB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存,96核CPU/768G内存,64核CPU/512G内存,60核CPU/480G内存);1GB(32核CPU/256G内存);512MB(16核CPU/128G内存);256MB(8核CPU/64G内存);128MB(4核CPU/32G内存);64MB(4核CPU/16G内存) 设置建议: 建议设置此参数的值大于work_mem,可以改进清理和恢复数据库转储的速度。因为在一个数据库会话里,任意时刻只有一个维护性操作可以执行,并且在执行维护性操作时不会有太多的会话。 当自动清理线程运行时,autovacuum_max_workers倍数的内存将会被分配,所以此时设置maintenance_work_mem的值应该不小于work_mem。 如果进行大数据量的cluster等,可以在session中调大该值。
  • max_stack_depth 参数说明:设置GaussDB执行堆栈的最大安全深度。需要这个安全界限是因为在服务器里,并非所有程序都检查了堆栈深度,只是在可能递规的过程,比如表达式计算这样的过程里面才进行检查。 该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,100~INT_MAX,单位为KB。 默认值: (ulimit -s的设置)- 640 KB的值大于等于2MB时,此参数的默认值为2MB。 (ulimit -s的设置)- 640 KB的值小于2MB时,此参数的默认值为(ulimit -s的设置)- 640 KB。 设置原则: 数据库需要预留640KB堆栈深度,因此,此参数的最佳设置是等于操作系统内核允许的最大值(就是ulimit -s的设置)- 640KB。 数据库未运行前设置的该参数值大于(ulimit -s的设置)- 640 KB时会导致数据库启动失败;数据库运行阶段设置该参数值大于(ulimit -s的设置)- 640 KB时该值不生效。 若(ulimit -s的设置)-640KB小于此参数取值范围的最小值时会导致数据库启动失败。 如果设置此参数的值大于实际的内核限制,则一个正在运行的递归函数可能会导致一个独立的服务器进程崩溃。 因为并非所有的操作都能够检测,所以建议用户在此设置一个明确的值。 默认值最大为2MB,这个值相对比较小,不容易导致系统崩溃。
  • enable_memory_limit 参数说明:启用逻辑内存管理模块。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:布尔型 on表示启用逻辑内存管理模块。 off表示不启用逻辑内存管理模块。 默认值:on 若max_process_memory-shared_buffers-cstore_buffers-元数据少于2G,GaussDB强制把enable_memory_limit设置为off。其中元数据是GaussDB内部使用的内存,和部分并发参数,如max_connections,thread_pool_attr,max_prepared_transactions等参数相关。 当该值为off时,不对数据库使用的内存做限制,在大并发或者复杂查询时,使用内存过多,可能导致操作系统OOM问题。
  • max_process_memory 参数说明:设置一个数据库节点可用的最大物理内存。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,2*1024*1024~INT_MAX,单位为KB。 默认值: 900GB(128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存);680GB(96核CPU/768G内存);450GB(64核CPU/512G内存);420GB(60核CPU/480G内存);200GB(32核CPU/256G内存);90GB(16核CPU/128G内存);40GB(8核CPU/64G内存);20GB(4核CPU/32G内存);10GB(4核CPU/16G内存) 设置建议: 数据库节点上该数值需要根据系统物理内存及单节点部署主数据库节点个数决定。建议计算公式如下:(物理内存大小 - vm.min_free_kbytes) \* 0.7 / (1 + 主节点个数)。该系数的目的是尽可能保证系统的可靠性,不会因数据库内存膨胀导致节点OOM。这个公式中提到vm.min_free_kbytes,其含义是预留操作系统内存供内核使用,通常用作操作系统内核中通信收发内存分配,至少为5%内存。即,max_process_memory = 物理内存 * 0.665 / (1 + 主节点个数)。 当该值设置不合理,即大于服务器物理内存,可能导致操作系统OOM问题。
  • SUMMARY_STATIO_SYS_TABLES SUMMARY_STATIO_SYS_TABLES视图显示数据库内各节点的系统表的I/O状态汇总信息。 表1 SUMMARY_STATIO_SYS_TABLES字段 名称 类型 描述 schemaname name 该表模式名。 relname name 表名。 heap_blks_read numeric 从该表中读取的磁盘块数。 heap_blks_hit numeric 此表缓存命中数。 idx_blks_read numeric 从表中所有索引读取的磁盘块数。 idx_blks_hit numeric 表中所有索引命中缓存数。 toast_blks_read numeric 此表的TOAST表读取的磁盘块数(如果存在)。 toast_blks_hit numeric 此表的TOAST表命中缓冲区数(如果存在)。 tidx_blks_read numeric 此表的TOAST表索引读取的磁盘块数(如果存在)。 tidx_blks_hit numeric 此表的TOAST表索引命中缓冲区数(如果存在)。 父主题: Cache/IO
  • repl_uuid 参数说明:设置用于主备UUID验证的UUID码。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 如果主机上开启了UUID验证功能、且配置了非空字符串的repl_uuid验证码,那么备机也需要开启UUID验证功能、且配置相同的repl_uuid验证码,否则主备日志复制和备机重建请求将被主机拒绝。 该参数支持SIGHUP动态加载新值。修改之后,不影响已建连的主备连接,对后续主备复制请求和主备重建请求生效。 支持Quorum、DCF协议下的备机重建验证;支持Quorum协议下的主备复制验证;不支持DCF协议下的主备复制验证。 不支持跨数据库实例主、备之间的认证,包括Dorado主备实例和容灾主备实例。 UUID验证功能主要为了防止主、备误连导致的数据串扰和污染,不是用于安全目的。 该参数不支持主、备间自动同步。 取值范围:字符串类型。长度0 – 63个字符,字母和数字的组合,大小写不敏感,内部统一转换为小写存储。空字符串表示不启用UUID验证功能。 默认值:空字符串
  • logical_decode_options_default 参数说明:指定逻辑解码启动时未指定解码选项的全局默认值。 该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 当前支持指定的逻辑解码选项包括:parallel-decode-num, parallel-queue-size, max-txn-in-memory, max-reorderbuffer-in-memory,exclude-users。 取值范围:通过逗号分隔的key=value字符串,例如:'parallel-decode-num=4,parallel-queue-size=128,exclude-users=userA'。其中空字符串表示采用程序硬编码的默认值。 默认值:空字符串 该参数SIGHUP生效并不会影响已经启动的逻辑解码流程;后续逻辑解码启动将使用该参数设置的选项作为其默认配置,并优先使用启动命令中指定选项的设置。 这里exclude-users选项和逻辑解码启动选项存在差异,不允许指定多个黑名单用户。
共100000条