华为云用户手册

  • STAT_ALL_TABLES 显示数据库当前节点每个表(包括TOAST表)的状态信息,如表1所示。 表1 STAT_ALL_TABLES字段 名称 类型 描述 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更新行数(即没有更新索引列的行数)。 n_live_tup bigint 估计活跃行数。 n_dead_tup bigint 估计不活跃行数。在Ustore表中仅代表不活跃行指针数量。 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守护线程分析的次数。 last_updated timestamp with time zone 视图中该对象监控数据最后一次更新的时间。 父主题: Object
  • geqo 参数说明:控制基因查询优化的使用。 该参数通过执行gs_guc reload修改时,如果当前节点上的某个session的连接不是来自于客户端,而是来自于该节点所属集群上的其他节点,那么执行gs_guc reload后该参数在该session上不会立即生效,需与连接节点断开连接后重新连接才会生效。 参数类型:布尔型 参数单位:无 取值范围: on:表示使用。 off:表示不使用。 默认值:on 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:通常情况下在执行过程中不要关闭,geqo_threshold参数提供了更精细的控制GEQO的方法。 设置不当的风险与影响:若关闭geqo参数,则当查询语句涉及的表数量较大时,会采用动态规划枚举所有组合,优化器生成计划的开销极大。
  • geqo_threshold 参数说明:如果执行语句的数量超过设计的FROM的项数,则会使用基因查询优化来执行查询。 对于简单的查询,通常用详尽搜索方法,当涉及多个表的查询的时候,用GEQO可以更好地管理查询。 一个FULL OUTER JOIN构造仅作为一个FROM项。 参数类型:整型 参数单位:无 取值范围:2 ~ 2147483647‬ 默认值:12 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值,若可以接受动态规划的性能开销,可以调大此值;若较难接受动态规划的开销,可以调小此值。 设置不当的风险与影响:设置过大,可能导致动态规划枚举所有计划的开销难以接受;设置过小,可能损失计划的准确性。
  • geqo_pool_size 参数说明:控制GEQO使用池的大小,也就是基因全体中的个体数量。 参数类型:整型 参数单位:无 取值范围:0 ~ 2147483647‬ 默认值:0 设置为0,表示使用系统自适应方式, GaussDB 会基于geqo_effort和表的个数选取合适的值。其余情况至少设置为2,且有用的值一般在100到1000之间。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过大,可能导致查询规划的开销过大;设置过小,可能导致生成的查询计划质量较差。
  • geqo_generations 参数说明:控制GEQO使用的算法的迭代次数。 参数类型:整型 参数单位:无 取值范围:0 ~ 2147483647‬ 默认值:0 如果设置为0,则基于geqo_pool_size选取合适的值。其余情况至少设置为1,且有用的值介于100和1000之间。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过大,可能导致查询规划的开销过大;设置过小,可能导致生成的查询计划质量较差。
  • geqo_seed 参数说明:控制GEQO使用的随机数生产器的初始化值,用来从顺序连接在一起的查询空间中查找随机路径。 参数类型:浮点型 参数单位:无 取值范围:0 ~ 1 默认值:0 不同的值会改变搜索的连接路径,从而影响所找路径的优劣。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:不同值会带来不同的随机性,可能影响连接路径生成的优劣。
  • geqo_selection_bias 参数说明:控制GEQO的选择性偏好,即一个种群中的选择性压力。 参数类型:浮点型 参数单位:无 取值范围:1.5 ~ 2 默认值:2 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置较高可能会导致GEQO算法更快地集中在一些优秀的计划上,而不是探索可行计划中的多样性。这可能会降低算法找到全局最优解的可能性,但可以提高找到可行的较优解的速度。
  • 以pg_temp或pg_toast_temp开头的SCHEMA是什么? 答:在查询SCHEMA的时候,发现查询结果中存在以pg_temp或pg_toast_temp开头的SCHEMA如下所示。 gaussdb=# SELECT nspname FROM pg_namespace WHERE nspname LIKE 'pg_t%' AND nspname != 'pg_toast'; nspname -------------------------------- pg_temp_cn_5001_3_2_3795 pg_toast_temp_cn_5001_3_2_3795 (2 rows) 以pg_temp或者pg_toast_temp开头的表是在创建临时表时,通过每个会话以pg_temp开头的SCHEMA来保证只对当前会话可见。因此,不建议用户在日常操作中手动删除以pg_temp、pg_toast_temp开头的SCHEMA。 临时表只在当前会话可见,会话结束后会自动删除,相对应的SCHEMA也会被删除。 父主题: FAQ
  • V_MYSTAT V_MYSTAT视图显示数据库所有会话的统计信息。该视图只有系统管理员可以访问,普通用户需要授权才能访问,该视图同时存在于PG_CATA LOG 和SYS Schema下。具体字段信息如表1所示。 表1 V_MYSTAT字段 名称 类型 描述 sid numeric 当前会话的id。 statistic# numeric 暂不支持,值为NULL。 value numeric 暂不支持,值为NULL。 con_id numeric 暂不支持,值为NULL。 父主题: 其他系统视图
  • WLM_USER_RESOURCE_CONFIG WLM_USER_RESOURCE_CONFIG视图显示用户的资源配置信息,如表1所示。 表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 texto 子用户的列表。 父主题: Workload Manager
  • 补充解释 PQbackendPID函数返回值在GaussDB中表示后台线程的槽位ID (SlotID),而并非后台线程的BackendPid。 由于存在上述差异,不建议按照PostgreSQL同名函数的语义执行。 若希望获取该连接的后台PID,可以通过执行系统函数pg_backend_pid获取。同时,依赖libpq的其他驱动程序的同名接口(如Python连接驱动psycopg2的get_backend_pid函数)也遵循上述规则。
  • DB_TAB_HISTOG RAM S DB_TAB_HISTOGRAMS视图显示当前用户可访问的表和视图的直方图统计信息,即表各列数据的分布情况。所有用户都可以访问该视图。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 DB_TAB_HISTOGRAMS字段 名称 类型 描述 owner character varying(128) 表的拥有者。 table_name character varying(128) 表名。 column_name character varying(4000) 列名。 endpoint_number numeric 直方图的桶号。 endpoint_value numeric 暂不支持,值为NULL。 endpoint_actual_value character varying(4000) 桶端点的实际值。 endpoint_actual_value_raw raw 暂不支持,值为NULL。 endpoint_repeat_count numeric 暂不支持,值为NULL。 scope character varying(7) 暂不支持,值为SHARED。 父主题: 其他系统视图
  • GS_GLOBAL_DIST_GTT_REMAIN_SESSIONS GS_GLOBAL_DIST_GTT_REMAIN_SESSIONS视图可用来在CN上查看所有残留在DN上的会话信息。 表1 GS_GTT_ATTACHED_PIDS字段 名称 类型 描述 dn_name text DN的名称。 cn_name text CN的名称。 cn_timeline int CN的时间线。 cn_sequence int CN的会话序列。 cn_session_id bigint CN的会话ID。 父主题: 其他系统视图
  • 二进制类型 GaussDB支持的二进制类型如表1所示。 表1 二进制类型 名称 描述 存储空间 BLOB 二进制大对象。 目前BLOB支持的外部存取接口仅为: DBE_LOB.GET_LENGTH DBE_LOB.READ DBE_LOB.WRITE DBE_LOB.WRITE_APPEND DBE_LOB.COPY DBE_LOB.ERASE 这些接口详细说明请参见DBE_LOB。 最大为1GB-1,但还需要考虑到列描述头信息的大小,以及列所在元组的大小限制(也小于1GB-1),因此BLOB类型最大值可能小于1GB-1。 当sql_compatibility = 'MYSQL'时,设置参数b_format_version = '5.7'和参数b_format_dev_version = 's1'时,BLOB类型映射为BYTEA类型,别名为BYTEA。 具体存储规格参考BYTEA类型。 TINYBLOB MEDIUMBLOB LONGBLOB 二进制大对象。 具体存储规格参考BYTEA类型。 只有当sql_compatibility = 'MYSQL'时,设置参数b_format_version = '5.7'和参数b_format_dev_version = 's1'时,可以使用此类型,类型映射为BYTEA类型,别名为BYTEA。 RAW 变长的十六进制类型。 4字节加上实际的二进制字符串。最大为1GB-1,但还需要考虑到列描述头信息的大小,以及列所在元组的大小限制(也小于1GB-1),因此类型最大值可能小于1GB-1。 BYTEA 变长的二进制字符串。 4字节加上实际的二进制字符串。最大为1GB-1,但还需要考虑到列描述头信息的大小,以及列所在元组的大小限制(也小于1GB-1),因此类型最大值可能小于1GB-1。 BYTEAWITHOUTORDERWITHEQUALCOL 变长的二进制字符串(密态特性新增的类型,如果加密列的加密类型指定为确定性加密,则该列的实际类型为BYTEAWITHOUTORDERWITHEQUALCOL),元命令打印加密表将显示原始数据类型。 4字节加上实际的二进制字符串。最大为1GB减去53字节(即1073741771字节)。 BYTEAWITHOUTORDERCOL 变长的二进制字符串(密态特性新增的类型,如果加密列的加密类型指定为随机加密,则该列的实际类型为BYTEAWITHOUTORDERCOL),元命令打印加密表将显示原始数据类型。 4字节加上实际的二进制字符串。最大为1GB减去53字节(即1073741771字节)。 _BYTEAWITHOUTORDERWITHEQUALCOL 变长的二进制字符串,密态特性新增的类型。 4字节加上实际的二进制字符串。最大为1GB减去53字节(即1073741771字节)。 _BYTEAWITHOUTORDERCOL 变长的二进制字符串,密态特性新增的类型。 4字节加上实际的二进制字符串。最大为1GB减去53字节(即1073741771字节)。 除了每列的大小限制以外,每个元组的总大小也不可超过1GB-1字节。 不支持直接使用BYTEAWITHOUTORDERWITHEQUALCOL、BYTEAWITHOUTORDERCOL、_BYTEAWITHOUTORDERWITHEQUALCOL和_BYTEAWITHOUTORDERCOL类型创建表。 RAW(n),n是指字节长度建议值,不会用于校验输入RAW类型的字节长度。 当sql_compatibility = 'MYSQL'时,设置参数b_format_version = '5.7'和参数b_format_dev_version = 's1'后,TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB类型的表现规格为BYTEA类型,如查询表结构显示为BYTEA类型。 示例: 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 --创建表。 gaussdb=# CREATE TABLE blob_type_t1 ( BT_COL1 INTEGER, BT_COL2 BLOB, BT_COL3 RAW, BT_COL4 BYTEA ) DISTRIBUTE BY REPLICATION; --插入数据。 gaussdb=# INSERT INTO blob_type_t1 VALUES(10,empty_blob(), HEXTORAW('DEADBEEF'),E'\\xDEADBEEF'); --查询表中的数据。 gaussdb=# SELECT * FROM blob_type_t1; bt_col1 | bt_col2 | bt_col3 | bt_col4 ---------+---------+----------+------------ 10 | | DEADBEEF | \xdeadbeef (1 row) --删除表。 gaussdb=# DROP TABLE blob_type_t1; --示例:TINYBLOB MEDIUMBLOB LONGBLOB二进制大对象类型。 gaussdb=# CREATE DATABASE gaussdb_m WITH dbcompatibility 'MYSQL'; gaussdb=# \c gaussdb_m --设置兼容版本控制参数。 gaussdb_m=# SET b_format_version='5.7'; gaussdb_m=# SET b_format_dev_version='s1'; --创建表。 gaussdb_m=# CREATE TABLE t1(num int, a tinyblob, b blob, m mediumblob, l longblob); --插入数据。 gaussdb_m=# INSERT INTO t1 VALUES (1, 'tinyblobtest', 'blobtest', 'mediumblobtest', 'longblobtest'); --查询表中数据。 gaussdb_m=# SELECT * FROM t1; num | a | b | m | l -----+--------------+----------+----------------+-------------- 1 | tinyblobtest | blobtest | mediumblobtest | longblobtest (1 row) --删除表和数据库。 gaussdb_m=# DROP TABLE t1; gaussdb_m=# \c postgres; gaussdb=# DROP DATABASE gaussdb_m; --重置参数。 gaussdb=# RESET ALL; 父主题: 数据类型
  • GaussDB都有哪些通配符,如何使用? 答: GaussDB数据库 支持以下三种通配符: %:表示任意数量的字符,包括0个,用于LIKE和NOT LIKE语句中。 _:表示一个字符,用于LIKE和 NOT LIKE语句中。 *:表示任意数量字符,包括0个,在部分元命令中使用。 示例: --任意数量字符的通配符使用,查询tbl_test表中以col1字段以ab开头任意多个字符结尾的数据。 gaussdb=# SELECT * FROM tbl_test WHERE col1 LIKE 'ab%'; --一个字符的通配符使用,查询tbl_test表中col1字段以a开头b结尾中间任意单个字符串的数据。 gaussdb=# SELECT * FROM tbl_test WHERE col1 LIKE 'a_b'; --查询所有以tbl开头的表。 gaussdb=# \dt tbl* 父主题: FAQ
  • 数组类型的字符串输出 一个数组值的输出表现形式由该数组元素类型的输出再加上一些标明该数组结构的修饰组成。这些修饰由围绕在数组值周围的花括号(“{” 和“}”)加上相邻项之间的分隔字符组成。在多维数组里, 每个维都有自己级别的花括号,并且在同级相邻的花括号项之间包含分隔符。 数组类型数据包含特殊字符(下述说明中的字符),字符串输出示例: gaussdb=# SELECT ARRAY['{', '}', 'hello, world', '"', '\', ' ', NULL] AS RESULT; array ---------------------------------------------- {"{","}","hello, world","\"","\\"," ",NULL} (1 row) 对于数组字符串常量输出,如果数组元素值是空字符串或者包含花括号、分隔符、双引号、反斜杠、空白或者元素为NULL,则这些元素输出时会输出双引号中,双引号和反斜杠则会被反斜杠转义额外输出一个反斜杠。与字符串常量输入相对应。
  • 数组类型的使用 数组类型的使用示例如下: -- 创建有数组类型列的表,并插入一些数据 gaussdb=# CREATE TABLE orders ( name varchar, items varchar[] ); gaussdb=# INSERT INTO orders VALUES('a', ARRAY['苹果', '橘子', '梨']); gaussdb=# INSERT INTO orders VALUES('b', ARRAY['矿泉水', '可乐', '雪碧']); gaussdb=# INSERT INTO orders VALUES('c', ARRAY['鼠标', '键盘', '耳机']); gaussdb=# INSERT INTO orders VALUES('d', '{白菜, 土豆, 茄子}'); -- 查询数据 gaussdb=# SELECT * FROM orders ORDER BY name; name | items ------+-------------------- a | {苹果,橘子,梨} b | {矿泉水,可乐,雪碧} c | {鼠标,键盘,耳机} d | {白菜,土豆,茄子} (4 rows) -- 访问数组元素 gaussdb=# SELECT items[1] FROM orders ORDER BY name; items -------- 苹果 矿泉水 鼠标 白菜 (4 rows) -- 访问元素超过范围或者访问下标为NULL时会返回NULL gaussdb=# SELECT items[4] FROM orders ORDER BY name; items ------- (4 rows) gaussdb=# SELECT items[null] FROM orders ORDER BY name; items ------- (4 rows) -- 访问子数组 gaussdb=# SELECT items[1:2] FROM orders ORDER BY name; items --------------- {苹果,橘子} {矿泉水,可乐} {鼠标,键盘} {白菜,土豆} (4 rows) -- 更新整个数组 gaussdb=# UPDATE orders SET items = ARRAY['香蕉', '西瓜', '草莓'] WHERE name = 'a'; gaussdb=# SELECT items FROM orders WHERE name = 'a'; items ------------------ {香蕉,西瓜,草莓} (1 row) -- 更新数组的元素 gaussdb=# UPDATE orders SET items[1] = '芒果' WHERE name = 'a'; gaussdb=# SELECT items FROM orders WHERE name = 'a'; items ------------------ {芒果,西瓜,草莓} (1 row) -- 更新数组的元素片段 gaussdb=# UPDATE ORDERS SET items[1:2] = ARRAY['电脑', '手机'] WHERE name = 'c'; gaussdb=# SELECT items FROM ORDERS WHERE name = 'c'; items ------------------ {电脑,手机,耳机} (1 row) -- 添加数组元素,所有位于原数组最后一个元素和这个新元素之间的未赋值元素都将设为 NULL gaussdb=# UPDATE orders SET items[4] = '显示器' WHERE name = 'c'; gaussdb=# SELECT items FROM orders WHERE name = 'c'; items ------------------------- {电脑,手机,耳机,显示器} (1 row) gaussdb=# UPDATE orders SET items[6] = '显示器2' WHERE name = 'c'; gaussdb=# SELECT items FROM orders WHERE name = 'c'; items -------------------------------------- {电脑,手机,耳机,显示器,NULL,显示器2} (1 row)
  • 数组类型的定义 一个数组数据类型一般通过在数组元素的数据类型名称后面加方括号[]进行命名。 示例一: --创建一个名为sal_emp的表,拥有一个表示雇员姓名类型为text的列(name),一个表示雇员季度工资的数组且元素类型为integer的列(pay_by_quarter),一个表示雇员手机号码的数组且元素类型为varchar(11)的列(phone_numbers)。 gaussdb=# CREATE TABLE sal_emp ( name text, pay_by_quarter integer[], phone_numbers varchar(11)[] ); gaussdb=# DROP TABLE sal_emp; 示例二:其他方式定义一个数组类型,具体定义方法和定义行为参考示例中的注释。 gaussdb=# CREATE TABLE sal_emp ( name text, pay_by_quarter1 integer[][], --int类型的二维数组。 pay_by_quarter2 integer[3], --int类型的一维数组,尺寸大小为3。 pay_by_quarter3 integer[3][3], --int类型的二维数组,每一维尺寸大小为3。 pay_by_quarter4 integer ARRAY, --int类型的一维数组。 pay_by_quarter5 integer ARRAY[3] --int类型的一维数组,尺寸大小为3。 ); gaussdb=# DROP TABLE sal_emp; 数组的维数定义功能并不生效(不影响运行时的行为),建议采用示例一的方式定义数组类型,不建议使用多维数组数据。 数组的尺寸定义功能并不生效(不影响运行时的行为),建议采用示例一的方式定义数组类型。 允许的数组数据维数最大为6。 数组元素个数限制如下: 元素个数最大为134217727个。 所有元素加起来最大存储空间不超过1GB - 1字节,即1073741823字节。
  • 数组类型的字符串输入 要把一个数组值写成一个文字常数(常量输入),将元素值用花括号括起并用逗号分隔。因此,一个数组常量的一般格式如下: '{ val1 delim val2 delim ... }' 上述格式中的delim是元素类型的分隔符,记录在类型的pg_type表的typdelim列中。每个val可以是数组元素类型的一个常量,也可以是一个子数组。示例如下: gaussdb=# SELECT '{1, 2, 3}'::int[] AS RESULT; result --------- {1,2,3} (1 row) gaussdb=# SELECT '{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}'::int[] AS RESULT; result --------------------------- {{1,2,3},{4,5,6},{7,8,9}} (1 row) 在任意元素值周围可以使用双引号,并且在元素值包含逗号或花括号等一些特殊字符时必须使用双引号。 示例如下: 该示例表示有一个varchar类型的数组,且一共有7个varchar元素,元素依次为: 包含一个空格的字符串 值为“NULL”的字符串 字符串为NULL 有一个\字符的字符串 有一个{字符的字符串 有一个}字符的字符串有一个,字符的字符串 gaussdb=# SELECT '{" ", "NULL", null, "\\", "{", "}", ","}'::varchar[] AS RESULT; result ------------------------------------ {" ","NULL",NULL,"\\","{","}",","} (1 row) 对于数组字符串常量输入,如果数组元素值是空字符串或者包含花括号、分隔符、双引号、反斜杠、空白或者匹配关键字NULL,则这些元素输入需要使用双引号,在元素值里包含的双引号和反斜杠时需要额外添加一个反斜杠。 关键字NULL不区分大小写。 输入会自动跳过没有使用双引号的空白。 一般不建议使用字符常量的方式构造数组数据,推荐使用ARRAY构造器。
  • 数组构造器 数组构造器是一个能构建数组值的表达式。简单的数组构造器由关键词ARRAY、“[”、用于数组元素值的表达式列表(用逗号分隔)以及最后的“]”组成。示例如下: gaussdb=# SELECT ARRAY[1, 2, 3 + 4]; array --------- {1,2,7} (1 row) 默认情况下,数组的元素类型是成员表达式的公共类型,使用与UNION或CASE结构(详情请参见UNION,CASE和相关构造)相同的规则决定。可以通过显式类型转换将数组构造为所需的数据类型,示例如下: gaussdb=# SELECT ARRAY[1, 2, 3]::varchar[]; array --------- {1,2,3} (1 row) gaussdb=# SELECT ARRAY['a', 'b', 'c']::varchar[]; array --------- {a,b,c} (1 row) 除预置的基础类型外,record类型和表类型也可以定义其数组类型,示例: gaussdb=# CREATE TYPE rec IS (c1 int, c2 int); gaussdb=# SELECT ARRAY[(1, 1), (2, 2)]::rec[]; array ------------------- {"(1,1)","(2,2)"} (1 row) gaussdb=# CREATE TABLE tab (c1 int, c2 int); gaussdb=# SELECT ARRAY[(1, 1), (2, 2)]::tab[]; array ------------------- {"(1,1)","(2,2)"} (1 row) gaussdb=# DROP TYPE rec; gaussdb=# DROP TABLE tab; 因为数组必须得有类型,因此在构造一个空数组时,必须明确的将其构造成需要的类型,示例: gaussdb=# SELECT ARRAY[]::int[]; array ------- {} (1 row) 也可以从子查询的结果中构造一个数组。此时,数组构造器是关键字ARRAY后拼接用圆括号包含的子查询,子查询必须只返回一个单独的字段。生成的一维数组将为子查询里每行结果生成一个元素,元素类型匹配子查询的输出字段。示例: gaussdb=# SELECT ARRAY(SELECT generate_series(1, 6)); array --------------- {1,2,3,4,5,6} (1 row) 多维数组值可以通过嵌套数组构造器的方法来制作。内层构造器中的ARRAY关键字可以省略。比如,下面两个示例是同样的结果: gaussdb=# SELECT ARRAY[ARRAY[1,2], ARRAY[3,4]]; array --------------- {{1,2},{3,4}} (1 row) gaussdb=# SELECT ARRAY[[1,2], [3,4]]; array --------------- {{1,2},{3,4}} (1 row) 同层的内层构造器必须生成同维的子数组。 任何应用于外层ARRAY构造器的类型转换自动的应用到所有的内层构造器。
  • PG_SESSION_IOSTAT PG_SESSION_IOSTAT视图显示当前用户执行作业正在运行时的I/O负载管理相关信息。查询该视图需要sysadmin权限或者monitor admin权限。具体字段信息如表1所示。 涉及到iops,以万次/s为单位。 当查询视图无数据显示时,请联系华为技术工程师提供技术支持。 表1 PG_SESSION_IOSTAT字段 名称 类型 描述 query_id bigint 作业id。 mincurriops integer 该作业当前I/O在各DN中的最小值。 maxcurriops integer 该作业当前I/O在各DN中的最大值。 minpeakiops integer 作业运行时,在各DN的最小作业I/O峰值。 maxpeakiops integer 作业运行时,在各DN的最大作业I/O峰值。 io_limits integer 该作业所设GUC参数io_limits的取值。 io_priority text 该作业所设GUC参数io_priority的取值。 query text 作业。 node_group text 作业所属用户对应的node_group。 curr_io_limits integer 使用io_priority管控I/O时的实时io_limits值。 父主题: 其他系统视图
  • PG_TOTAL_USER_RESOURCE_INFO PG_TOTAL_USER_RESOURCE_INFO视图显示所有用户的资源使用情况,需要使用管理员用户进行查询。此视图在GUC参数use_workload_manager为on时才有效。其中,IO相关监控项在参数enable_logical_io_statistics为on时才有效。具体字段信息如表1所示。 表1 PG_TOTAL_USER_RESOURCE_INFO字段 名称 类型 描述 username name 用户名。 used_memory integer 正在使用的内存大小,单位MB。 total_memory integer 可以使用的内存大小,单位MB。值为0表示未限制最大可用内存,其限制取决于数据库最大可用内存。 used_cpu double precision 正在使用的CPU核数(仅统计复杂作业CPU使用 情况,且该值为相关控制组的CPU使用统计值)。 total_cpu integer 在该机器节点上,用户关联控制组的CPU核数总和。 used_space bigint 已使用的永久表存储空间大小,单位KB。 total_space bigint 可使用的永久表存储空间大小,单位KB,值为-1表示未限制最大存储空间。 used_temp_space bigint 已使用的临时空间大小,单位KB。 total_temp_space bigint 可使用的临时空间总大小,单位KB,值为-1表示未限制。 used_spill_space bigint 已使用的算子落盘空间大小,单位KB。 total_spill_space bigint 可使用的算子落盘空间总大小,单位KB,值为-1表示未限制。 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)。 父主题: 其他系统视图
  • DBE_SQL_UTIL.enable_remote_sql_patch enable_remote_sql_patch是用于指定CN开启SQL PATCH的接口函数,返回执行是否成功,如表1所示。 限制:仅初始用户、sysadmin、opradmin和monadmin用户有权限调用。 表1 DBE_SQL_UTIL.enable_remote_sql_patch入参和返回值列表 参数 类型 描述 node_name IN text 目标节点名。 patch_name IN name PATCH名称。 result OUT bool 执行是否成功。 父主题: DBE_SQL_UTIL Schema
  • 语法格式 从一个文件复制数据到一个表。 COPY [BINARY] table_name [ ( column_name [, ...] ) ] [ WITH OIDS ] FROM { 'filename' | STDIN } [ LOAD ] [ LOAD_DISCARD 'discard_file_name' ] [ LOAD_BAD 'bad_file_name' ] [ USEEOF ] [ [ USING ] DELIMITERS 'delimiters' ] [ WITHOUT ESCAPING ] [ LOG ERRORS | LOG ERRORS DATA ] [ REJECT LIMIT 'limit' ] [ WITH ] [ copy_option [ ...] | ( option [, ...] ) ]; 把一个表的数据复制到一个文件。 COPY table_name [ ( column_name [, ...] ) ] [ WITH OIDS ] TO { 'filename' | STDOUT } [ [ USING ] DELIMITERS 'delimiters' ] [ WITHOUT ESCAPING ] [ WITH ] [ copy_option [ ...] | ( option [, ...] ) ]; COPY query {(SELECT) | (VALUES)} TO { 'filename' | STDOUT } [ WITHOUT ESCAPING ] [ WITH ] [ copy_option [ ...] | ( option [, ...] ) ]; COPY TO语法形式约束如下: (query)与[USING] DELIMITERS不兼容,即若COPY TO的数据来自于一个query的查询结果,那么COPY TO语法不能再指定[USING] DELIMITERS语法子句。 copy_option是指COPY原生的参数形式,而option是兼容外表导入的参数形式。 其中可选参数copy_option子句语法为: OIDS | DELIMITER [ AS ] 'delimiter_string' | NULL [ AS ] 'null_string' | HEADER | FILEHEADER 'header_file_string' | FREEZE | FORCE NOT NULL column_name [, ...] | FORCE QUOTE { column_name [, ...] | * } | BINARY | CS V | FIXED | QUOTE [ AS ] 'quote_character' | ESCAPE [ AS ] 'escape_character' | EOL 'newline_character' | ENCODING 'encoding_name' | IGNORE_EXTRA_DATA | FILL_MISSING_FIELDS | COMPATIBLE_ILLEGAL_CHARS | DATE_FORMAT 'date_format_string' | TIME_FORMAT 'time_format_string' | TIMESTAMP_FORMAT 'timestamp_format_string' | DATEA_FORMAT 'datea_format_string' | SMALLDATETIME_FORMAT 'smalldatetime_format_string' | COPY_CUSTOM_ID 'custom_id_string' | TABLE_COMPRESS_CLAUSE( ROW STORE COMPRESS ADVANCED [ MEDIUM | HIGH ] ROW [ON (EXPR)]) | FORMATTER ( [ column_name( offset, length ) ] [, ...] ) | TRANSFORM ( [ column_name [ data_type ] [ AS transform_expr ] ] [, ...] ) 其中可选参数option子句语法为: FORMAT 'format_name' | OIDS [ boolean ] | DELIMITER 'delimiter_character' | NULL 'null_string' | HEADER [ boolean ] | USEEOF [ boolean ] | FILEHEADER 'header_file_string' | FREEZE [ boolean ] | QUOTE 'quote_character' | ESCAPE 'escape_character' | EOL 'newline_character' | NOESCAPING [ boolean ] | FORCE_QUOTE { ( column_name [, ...] ) | * } | FORCE_NOT_NULL ( column_name [, ...] ) | ENCODING 'encoding_name' | IGNORE_EXTRA_DATA [ boolean ] | FILL_MISSING_FIELDS | COMPATIBLE_ILLEGAL_CHARS [ boolean ] | DATE_FORMAT 'date_format_string' | TIME_FORMAT 'time_format_string' | TIMESTAMP_FORMAT 'timestamp_format_string' | DATEA_FORMAT 'datea_format_string' | SMALLDATETIME_FORMAT 'smalldatetime_format_string' | COPY_CUSTOM_ID 'custom_id_string'
  • 注意事项 当参数enable_copy_server_files关闭时,只允许初始用户执行COPY FROM FILENAME或COPY TO FILENAME命令,当参数enable_copy_server_files打开时,允许具有SYSADMIN权限的用户或继承了内置角色gs_role_copy_files权限的用户执行,但默认禁止对数据库配置文件,密钥文件,证书文件和审计日志执行COPY FROM FILENAME或COPY TO FILENAME,以防止用户越权查看或修改敏感文件。同时enable_copy_server_files打开时,管理员可以通过guc参数safe_data_path设置普通用户可以导入导出的路径必须为设置路径的子路径,未设置此guc参数时候(默认情况),不对普通用户使用的路径进行拦截。该参数会对copy使用路径中的相对路径进行报错处理。 COPY只能用于表,不能用于视图。 COPY TO需要读取的表的SELECT权限,COPY FROM需要插入的表的INSERT权限。 如果声明了一个字段列表,COPY将只在文件和表之间复制已声明字段的数据。如果表中有任何不在字段列表里的字段,COPY FROM将为那些字段插入缺省值。 如果声明了数据源文件,服务器必须可以访问该文件;如果指定了STDIN,数据将在客户前端和服务器之间流动,输入时,表的列与列之间使用TAB键分隔,在新的一行中以反斜杠和句点(\.)表示输入结束。 如果数据文件的任意行包含比预期多或者少的字段,COPY FROM将抛出一个错误。 数据的结束可以用一个只包含反斜杠和句点(\.)的行表示。如果从文件中读取数据,数据结束的标记是不必要的;如果在客户端应用之间复制数据,必须要有结束标记。 COPY FROM中\N为空字符串,如果要输入实际数据值\N ,使用\\N。
  • ADM_AUDIT_OBJECT ADM_AUDIT_OBJECT显示数据库中所有对象的审计跟踪记录,该视图同时存在于pg_catalog和sys schema下。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。 表1 ADM_AUDIT_OBJECT字段 名称 类型 描述 os_username character varying(255) 暂不支持,值为NULL。 username character varying(128) 操作被审计的用户的名称,不是用户id。 userhost character varying(128) 暂不支持,值为NULL。 terminal character varying(255) 暂不支持,值为NULL。 timestamp date 在本地数据库会话时区中创建审计跟踪条目的日期和时间(审计会话创建条目的用户登录日期和时间)。 owner character varying(128) 受操作影响的对象的创建者。 obj_name character varying(128) 受操作影响的对象的名称。 action_name character varying(28) DBA_AUDIT_TRAIL中的“操作”列中的数字代码对应的动作类型名称。 说明: GaussDB的action_name字段与ORA数据库审计动作不一致。 new_owner character varying(128) 暂不支持,值为NULL。 new_name character varying(128) 暂不支持,值为NULL。 ses_actions character varying(19) 暂不支持,值为NULL。 comment_text character varying(4000) 暂不支持,值为NULL。 sessionid numeric 暂不支持,值为NULL。 entryid numeric 暂不支持,值为NULL。 statementid numeric 暂不支持,值为NULL。 returncode numeric 暂不支持,值为NULL。 priv_used character varying(40) 暂不支持,值为NULL。 client_id character varying(128) 暂不支持,值为NULL。 econtext_id character varying(64) 暂不支持,值为NULL。 session_cpu numeric 暂不支持,值为NULL。 extended_timestamp timestamp(6) with time zone 在UTC(协调世界时)时区创建审计跟踪条目的时间戳(审计会话创建条目的用户的登录时间戳)。 proxy_sessionid numeric 暂不支持,值为NULL。 global_uid character varying(32) 暂不支持,值为NULL。 instance_number numeric 暂不支持,值为NULL。 os_process character varying(16) 暂不支持,值为NULL。 transactionid text 访问或修改对象的事务的事务标识符。 说明: GaussDB的transactionid字段与ORA数据库中transactionid数据的类型保持一致。 scn numeric 暂不支持,值为NULL。 sql_bind nvarchar2(2000) 暂不支持,值为NULL。 sql_text character varying 查询的SQL文本。 说明: GaussDB的sql_text字段为解析后sql描述语句,不完全与执行的sql语句相同。 obj_edition_name character varying(128) 暂不支持,值为NULL。 父主题: 审计
  • dcf_majority_groups 参数说明:DCF策略化多数派功能设置。对于需要配置此参数的group,该group内至少有一台备机收到日志。即该group内存在一台同步备机。若对DCF实例内做了增删节点或者对实例内节点group值进行了调整修改,需同步修改此配置。修改此参数时需保证group数值实际存在且有效。 参数类型:字符串 参数单位:无 取值范围: 关闭:"",空字符串表示策略化多数派功能关闭。 开启: 配置有效的group值,使用逗号分隔,group值需在dcf_config中存在。例如将group值分别为1和2,加入DCF的策略化多数派配置时,可以设置为"1,2";若配置了dcf_config中不存在的group值或者其他字符,DCF将认为该配置的group无效。 默认值:"" 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。 若配置了参数后某一group内所有节点均故障,在对其中某个节点做涉及节点build相关操作(节点修复、不换ip的节点替换)时,需要将该group从此参数列表中移除,待节点恢复正常后可将该group再次配置到此参数。
  • dcf_thread_effective_time 参数说明:DCF刷盘线程存活有效时间。参数用于判断磁盘是否处于I/O hang,若超过此时间DCF控制日志无法刷新,无法访问I/O资源则认为线程I/O hang,则会触发降备动作。参数配置为0表示关闭I/O hang检测。 参数类型:整型 参数单位:s(秒) 取值范围:0 ~ 1000 默认值:160 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。取值不能带单位。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • dcf_node_id_map 参数说明:DN备机名称与DCF node_id映射字典,参数重启生效,参数需要在安装阶段配置,后续不支持修改。在DCF集群安装、升级、节点替换场景会涉及使用此参数。GUC参数synchronous_standby_names中配置的standby_name需包含在此字典内。 参数类型:字符串 参数单位:无 取值范围:配置格式例如:'standby_name1:dcf_node_id1,standby_name2:dcf_node_id2',DN备机名称对应的DCF node_id数值,且使用逗号分隔。 默认值:"" 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置不当可能会导致集群安装、升级失败。
  • dcf_candidate_names 参数说明:DCF候选者列表参数。即有可能被选为主机的DN节点名称。DCF自动模式下选举策略受此参数控制,不在此列表内的DN无法当选为主机。 参数类型:字符串 参数单位:无 取值范围:配置格式例如:'dn_name1,dn_name2,dn_name3'。参数依赖dcf_node_id_map,DN名称必须位于dcf_node_id_map中,且使用逗号分隔。 默认值:"" 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
共100000条
提示

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