华为云用户手册

  • STATIO_SYS_SEQUENCES STATIO_SYS_SEQUENCES显示命名空间中所有系统序列的I/O状态信息。 表1 STATIO_SYS_SEQUENCES字段 名称 类型 描述 relid oid 序列OID。 schemaname name 序列中模式名。 relname name 序列名。 blks_read bigint 从序列中读取的磁盘块数。 blks_hit bigint 序列中缓存命中数。 父主题: Cache/IO
  • PGXC_RUNNING_XACTS PGXC_RUNNING_XACTS视图显示集群中各个节点运行事务的信息,字段内容和PG_RUNNING_XACTS相同。只有system admin和monitor admin用户有权限查看。 表1 PGXC_RUNNING_XACTS字段 名称 类型 描述 handle integer 事务在GTM对应的句柄。 gxid xid 事务id号。 state tinyint 事务状态。 3:prepared。 0:starting。 node text 节点名称。 xmin xid 节点上当前数据涉及的最小事务号xmin。 vacuum boolean 表示当前事务是否是lazy vacuum事务。 t(true):表示是。 f(false):表示否。 timeline bigint 数据库重启次数。 prepare_xid xid 处于prepared状态事务的id号,若不在prepared状态,值为0。 pid bigint 事务对应的线程id。 next_xid xid CN传给DN的事务id号。 父主题: 系统视图
  • GLOBAL_OS_THREADS 提供整个集群中所有正常节点下的线程状态信息。 表1 GLOBAL_OS_THREADS字段 名称 类型 描述 node_name text 当前节点的名称。 pid bigint 当前节点进程中正在运行的线程号。 lwpid integer 与pid对应的轻量级线程号。 thread_name text 与pid对应的线程名称。 creation_time timestamp with time zone 与pid对应的线程创建的时间。 父主题: OS
  • ADM_PART_TABLES ADM_PART_TABLES视图显示数据库中所有分区表的信息。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_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。分布式不支持二级分区,值为NONE。 def_subpartition_count integer 默认创建二级分区的个数,二级分区表为1,一级分区表为0。分布式不支持二级分区,值为0。 subpartitioning_key_count integer 分区表二级分区键的个数。分布式不支持二级分区,值为0。 status character varying(8) 暂不支持,值为valid。 def_pct_free numeric 添加分区时使用的PCTFREE默认值。 def_pct_used numeric 暂不支持,值为NULL。 def_ini_trans numeric 添加分区时使用的INITRANS默认值。 def_max_trans numeric 添加分区时使用的MAXTRANS默认值。 def_initial_extent character varying(40) 暂不支持,值为NULL。 def_next_extent character varying(40) 暂不支持,值为NULL。 def_min_extents character varying(40) 暂不支持,值为NULL。 def_max_extents character varying(40) 暂不支持,值为NULL。 def_max_size character varying(40) 暂不支持,值为NULL。 def_pct_increase character varying(40) 暂不支持,值为NULL。 def_freelists numeric 暂不支持,值为NULL。 def_freelist_groups numeric 暂不支持,值为NULL。 def_logging character varying(7) 暂不支持,值为NULL。 def_compression character varying(8) 添加分区时使用的默认压缩: NONE ENABLED DISABLED def_compress_for character varying(30) 添加分区时使用的默认压缩。 说明: 可用的压缩方法和压缩级别见WITH ( { storage_paramet...。 def_buffer_pool character varying(7) 暂不支持,值为DEFAULT。 def_flash_cache character varying(7) 暂不支持,值为NULL。 def_cell_flash_cache character varying(7) 暂不支持,值为NULL。 ref_ptn_constraint_name character varying(128) 暂不支持,值为NULL。 interval character varying(1000) 区间值字符串。 autolist character varying(3) 暂不支持,值为NO。 interval_subpartition character varying(1000) 暂不支持,值为NULL。 autolist_subpartition character varying(3) 暂不支持,值为NO。 is_nested character varying(3) 暂不支持,值为NO。 def_segment_creation character varying(4) 暂不支持段页式设置,当启用segment时,值为YES。 def_indexing character varying(3) 暂不支持,值为ON。 def_inmemory character varying(8) 暂不支持,值为NONE。 def_inmemory_priority character varying(8) 暂不支持,值为NULL。 def_inmemory_distribute character varying(15) 暂不支持,值为NULL。 def_inmemory_compression character varying(17) 暂不支持,值为NULL。 def_inmemory_duplicate character varying(13) 暂不支持,值为NULL。 def_read_only character varying(3) 暂不支持,值为NO。 def_cellmemory character varying(24) 暂不支持,值为NULL。 def_inmemory_service character varying(12) 暂不支持,值为NULL。 def_inmemory_service_name character varying(1000) 暂不支持,值为NULL。 父主题: 系统视图
  • aclitem类型 aclitem数据类型是用来存储对象权限信息的,它的内部实现是int类型,支持的格式为‘user1=privs/user2’。 aclitem[]数据类型为aclitem组成的数组,支持的格式为‘{user1=privs1/user3,user2=privs2/user3}’。 其中user1,user2和user3为数据库中已存在的用户/角色名,privs为数据库中支持的权限(参见表2)。 示例: --创建相应用户。 gaussdb=# CREATE USER user1 WITH PASSWORD 'Aa123456789'; gaussdb=# CREATE USER user2 WITH PASSWORD 'Aa123456789'; gaussdb=# CREATE USER omm WITH PASSWORD 'Aa123456789'; --新建一张数据表table_acl,有三个字段,类型分别为int、aclitem、aclitem[]。 gaussdb=# CREATE TABLE table_acl (id int,priv aclitem,privs aclitem[]); --向数据表table_acl插入一条内容为(1,'user1=arw/omm','{omm=d/user2,omm=w/omm}')的数据。 gaussdb=# INSERT INTO table_acl VALUES (1,'user1=arw/omm','{omm=d/user2,omm=w/omm}'); --向数据表table_acl再插入一条内容为(2,'user1=aw/omm','{omm=d/user2}')的数据。 gaussdb=# INSERT INTO table_acl VALUES (2,'user1=aw/omm','{omm=d/user2}'); gaussdb=# SELECT * FROM table_acl; id | priv | privs ----+---------------+------------------------- 1 | user1=arw/omm | {omm=d/user2,omm=w/omm} 2 | user1=aw/omm | {omm=d/user2} (2 rows) --删除表和用户。 gaussdb=# DROP USER user1; gaussdb=# DROP USER user2; gaussdb=# DROP USER omm; gaussdb=# DROP TABLE table_acl; 父主题: 数据类型
  • GS_PLAN_TRACE GS_PLAN_TRACE系统表是用于存储plan trace的系统表,主要记录的是DML语句生成计划过程的详情,只有具有sysadmin权限的用户才可以使用该系统表。分布式场景下不支持plan trace特性,所以在分布式下该视图中无数据。 表1 GS_PLAN_TRACE字段 名称 类型 描述 query_id text 当前请求的唯一id。 query text 当前请求的sql语句,该字段大小不会超过系统参数track_activity_query_size指定的大小。 unique_sql_id bigint 当前请求sql的唯一id。 plan text 当前请求sql对应的查询计划文本,该字段大小不会超过10K。 plan_trace text 当前请求sql对应的查询计划生成过程的明细,该字段大小不会超过300M。 owner oid 当前请求sql用户的oid。 modifydate timestamp with time zone 当前plan trace的更新时间(当前指的是 plan trace创建时间)。 父主题: 系统表
  • PG_DESCRIPTION PG_DESCRIPTION系统表可以给每个数据库对象存储一个可选的描述(注释)。许多内置的系统对象的描述提供了PG_DESCRIPTION的初始内容。 这个表的功能类似PG_SHDESCRIPTION,用于记录整个集群范围内共享对象的注释。 表1 PG_DESCRIPTION字段 名称 类型 引用 描述 objoid oid 任意OID属性 这条描述所描述的对象的OID。 classoid oid PG_CLASS.oid 这个对象出现的系统表的OID。 objsubid integer - 对于一个表字段的注释,它是字段号(objoid和classoid指向表自身)。对于其它对象类型,它是零。 description text - 对该对象描述的任意文本。 父主题: 系统表
  • NLS_DATABASE_PARAMETERS NLS_DATABASE_PARAMETERS列出数据库服务器端的永久NLS参数。该视图同时存在于PG_CATALOG和SYS Schema下。所有用户都可以访问。由于数据库内核不同、参数的设置格式不同等原因,该视图对相同参数的查询结果可能会和ORA数据库有明显差异。 表1 NLS_DATABASE_PARAMETERS字段 名称 类型 描述 parameter character varying(128) 参数名。 value character varying(64) 参数值。 父主题: 系统视图
  • 异步命令处理 PQexec函数对普通的同步应用里提交命令已经足够使用。但是它却有几个缺陷,而这些缺陷可能对某些用户很重要。 PQexec等待命令结束,而应用可能还有其它的工作要做(比如维护用户界面等),此时PQexec可不想阻塞在这里等待响应。 因为客户端应用在等待结果的时候是处于挂起状态的,所以应用很难判断它是否该尝试结束正在进行的命令。 PQexec只能返回一个PGresult结构。如果提交的命令字符串包含多个SQL命令,除了最后一个PGresult以外都会被PQexec丢弃。 PQexec总是收集命令的整个结果,将其缓存在一个PGresult中。虽然这为应用简化了错误处理逻辑,但是对于包含多行的结果是不切实际的。 不想受到这些限制的应用可以改用下面的函数,这些函数也是构造PQexec的函数:PQsendQuery和PQgetResult。PQsendQueryParams、PQsendPrepare、PQsendQueryPrepared也可以和PQgetResult一起使用。 PQsendQuery PQsendQueryParams PQsendPrepare PQsendQueryPrepared PQflush 父主题: libpq接口参考
  • GS_CLIENT_GLOBAL_KEYS_ARGS GS_CLIENT_GLOBAL_KEYS_ARGS系统表记录密态等值特性中客户端加密主密钥相关元数据信息,每条记录对应客户端加密主密钥的一个键值对信息。 表1 GS_CLIENT_GLOBAL_KEYS_ARGS字段 名称 类型 描述 oid oid 行标识符(隐含字段)。 global_key_id oid 客户端加密主密钥(cmk)oid。 function_name name 值为encryption。 key name 客户端加密主密钥(cmk)的元数据信息对应的名称。 value bytea 客户端加密主密钥(cmk)的元数据信息名称的值。 父主题: 系统表
  • 通用文件访问函数 通用文件访问函数提供了对数据库服务器上的文件的本地访问接口。只有数据库集群目录和log_directory目录里面的文件可以访问。使用相对路径访问集群目录里面的文件,以及匹配log_directory配置而设置的路径访问日志文件。只有数据库初始化用户才能使用这些函数。 pg_ls_dir(dirname text) 描述:列出目录中的文件。 返回值类型:setof text 备注:pg_ls_dir返回指定目录里面的除了特殊项“.”和“..”之外所有名称。 示例: 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 gaussdb=# SELECT pg_ls_dir('./'); pg_ls_dir ---------------------- .postgresql.conf.swp postgresql.conf pg_tblspc PG_VERSION pg_ident.conf core server.crt pg_serial pg_twophase postgresql.conf.lock pg_stat_tmp pg_notify pg_subtrans pg_ctl.lock pg_xlog pg_clog base pg_snapshots postmaster.opts postmaster.pid server.key.rand server.key.cipher pg_multixact pg_errorinfo server.key pg_hba.conf pg_replslot .pg_hba.conf.swp cacert.pem pg_hba.conf.lock global gaussdb.state (32 rows) pg_read_file(filename text, offset bigint, length bigint) 描述:返回一个文本文件的内容。 返回值类型:text 备注:pg_read_file返回一个文本文件的一部分,从offset开始,最多返回length字节(如果先达到文件结尾,则小于这个数值)。如果offset是负数,则它是相对于文件结尾回退的长度。如果省略了offset和length,则返回整个文件。 示例: 1 2 3 4 5 6 7 8 9 10 11 gaussdb=# SELECT pg_read_file('postmaster.pid',0,100); pg_read_file --------------------------------------- 53078 + /srv/BigData/testdir/data1/coordinator+ 1500022474 + 8000 + /var/run/FusionInsight + localhost + 2 (1 row) pg_read_binary_file(filename text [, offset bigint, length bigint,missing_ok boolean]) 描述:返回一个二进制文件的内容。 返回值类型:bytea 备注:pg_read_binary_file的功能与pg_read_file类似,除了结果的返回值为bytea类型不一致,相应地不会执行编码检查。与convert_from函数结合,这个函数可以用来读取用指定编码的一个文件。 1 gaussdb=# SELECT convert_from(pg_read_binary_file('filename'), 'UTF8'); pg_stat_file(filename text) 描述:返回一个文本文件的状态信息。 返回值类型:record 备注:pg_stat_file返回一条记录,其中包含:文件大小、最后访问时间戳、最后更改时间戳、最后文件状态修改时间戳以及标识传入参数是否为目录的Boolean值。典型的用法: 1 gaussdb=# SELECT * FROM pg_stat_file('filename'); 1 gaussdb=# SELECT (pg_stat_file('filename')).modification; 示例: 1 2 3 4 5 6 7 8 9 10 11 12 gaussdb=# SELECT convert_from(pg_read_binary_file('postmaster.pid'), 'UTF8'); convert_from -------------------------------------- 4881 + /srv/BigData/gaussdb/data1/coordinator+ 1496308688 + 25108 + /opt/huawei/Bigdata/gaussdb/gaussdb_tmp + * + 25108001 43352069 + (1 row) 1 2 3 4 5 6 7 8 9 gaussdb=# SELECT * FROM pg_stat_file('postmaster.pid'); size | access | modification | change | creation | isdir ------+------------------------+------------------------+------------------------ +----------+------- 117 | 2017-06-05 11:06:34+08 | 2017-06-01 17:18:08+08 | 2017-06-01 17:18:08+08 | | f (1 row) 1 2 3 4 5 gaussdb=# SELECT (pg_stat_file('postmaster.pid')).modification; modification ------------------------ 2017-06-01 17:18:08+08 (1 row) 父主题: 系统管理函数
  • 参数说明 INDEX 重新建立指定的索引。 TABLE 重新建立指定表的所有索引,如果表有从属的"TOAST"表,则这个表也会重建索引。如果表上有索引已经被alter unusable失效,则这个索引无法被重新创建。当指定CONCURRENTLY选项时,暂不支持重建从属"TOAST"表上的索引。 DATABASE 重建当前数据库里的所有索引。当指定CONCURRENTLY选项时,暂不支持重建数据库中表的从属"TOAST"表上的索引。 SYSTEM 在当前数据库上重建所有系统表上的索引。不会处理在用户表上的索引。 CONCURRENTLY 以不阻塞DML的方式重建索引(加ShareUpdateExclusiveLock锁)。重建索引时,一般会阻塞其他语句对该索引所依赖表的访问。指定此关键字,可以实现重建过程中不阻塞DML。不支持在线重建系统表上的索引。不支持REINDEX INTERNAL TABLE CONCURRENTLY和REINDEX SYSTEM CONCURRENTLY。当执行REINDEX DATABASE CONCURRENTLY时,在线重建当前数据库中用户表上的所有索引(不会处理系统表上的索引)。REINDEX CONCURRENTLY不可以在事务内执行。在线重建索引只支持B-tree索引和UB-tree索引,只支持普通索引、GLOBAL索引、LOCAL索引。在线并行重建索引只支持Astore的普通索引、GLOBAL索引、LOCAL索引,Ustore索引不支持在线并行重建。如果在线重建索引失败,可能会留下非法的新索引,在系统无法自动清理失败新索引的情况下(比如数据库宕机),需要尽快手动清除(使用DROP INDEX语句)非法新索引,以防占用更多资源。一般来说,非法的新索引的后缀名为_ccnew。REINDEX INDEX CONCURRENTLY对表加4级会话锁,且其前几个阶段与CREATE INDEX CONCURRENTLY相似,因此也可能产生卡住或死锁的问题,具体场景与CREATE INDEX CONCURRENTLY相似(比如两个会话同时对同一个索引或表进行REINDEX CONCURRENTLY操作,会引发死锁问题),详见CONCURRENTLY章节。 name 需要重建索引的索引、表、数据库的名称。表和索引可以有模式修饰。 REINDEX DATABASE和SYSTEM只能重建当前数据库的索引,所以name必须和当前数据库名称相同。 FORCE 废弃选项,仅为保持前向兼容,故继续保留。 partition_name 需要重建索引的分区的名称或者索引分区的名称。 取值范围: 如果前面是REINDEX INDEX,则这里应该指定索引分区的名称; 如果前面是REINDEX TABLE,则这里应该指定分区的名称; REINDEX DATABASE和SYSTEM这种形式的重建索引不能在事务块中执行。 REINDEX、REINDEX CONCURRENTLY不支持单独操作toast表或toast索引。
  • 示例 --创建一个普通表。 gaussdb=# CREATE TABLE my_table (c1 int, c2 int); --创建增量物化视图。 gaussdb=# CREATE INCREMENTAL MATERIALIZED VIEW my_imv AS SELECT * FROM my_table; --基表写入数据。 gaussdb=# INSERT INTO my_table VALUES(1,1),(2,2); --对增量物化视图my_imv进行增量刷新。 gaussdb=# REFRESH INCREMENTAL MATERIALIZED VIEW my_imv; --删除增量物化视图。 gaussdb=# DROP MATERIALIZED VIEW my_imv; --删除表my_table。 gaussdb=# DROP TABLE my_table;
  • PV_TOTAL_MEMORY_DETAIL PV_TOTAL_MEMORY_DETAIL视图显示当前数据库节点使用内存的信息,单位为MB。 表1 PV_TOTAL_MEMORY_DETAIL字段 名称 类型 描述 nodename text 节点名称。 memorytype text 内存类型,包括以下几种: max_process_memory:GaussDB集群实例所占用的内存大小。 process_used_memory:GaussDB进程所使用的内存大小。 max_dynamic_memory:最大动态内存。 dynamic_used_memory:已使用的动态内存。 dynamic_peak_memory:内存的动态峰值。 dynamic_used_shrctx:最大动态共享内存上下文。 dynamic_peak_shrctx:共享内存上下文的动态峰值。 max_backend_memory:使用HA端口执行业务可使用的最大内存上限。 backend_used_memory:使用HA端口执行业务已使用的内存。 max_shared_memory:最大共享内存。 shared_used_memory:已使用的共享内存。 max_sctpcomm_memory:通信库所允许使用的最大内存。 sctpcomm_used_memory:通信库已使用的内存大小。 sctpcomm_peak_memory:通信库的内存峰值。 other_used_memory:其他已使用的内存大小。 memorymbytes integer 内存类型分配内存的大小。 父主题: 系统视图
  • SUMMARY_STAT_SYS_TABLES 显示集群内pg_catalog、information_schema以及pg_toast模式下所有系统表的状态统计信息(在CN节点使用,统计信息包含CN节点与DN节点的数据。对每个节点下系统表的状态信息汇总求和,其中timestamp类型字段不进行求和,仅取所有节点该字段的最新值)。 表1 SUMMARY_STAT_SYS_TABLES字段 名称 类型 描述 schemaname name 该表所在的Schema名。 relname name 表名。 seq_scan numeric 该表发起的顺序扫描数。 seq_tup_read numeric 顺序扫描抓取的活跃行数。 idx_scan numeric 该表发起的索引扫描数。 idx_tup_fetch numeric 索引扫描抓取的活跃行数。 n_tup_ins numeric 插入行数。 n_tup_upd numeric 更新行数。 n_tup_del numeric 删除行数。 n_tup_hot_upd numeric HOT更新行数(即没有更新索引列的行数)。 n_live_tup numeric 估计活跃行数。 n_dead_tup numeric 估计不活跃行数。 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 numeric 该表被手动清理的次数(不计算VACUUM FULL)。 autovacuum_count numeric 该表被autovacuum清理的次数。 analyze_count numeric 该表被手动分析的次数。 autoanalyze_count numeric 该表被autovacuum守护线程分析的次数。 父主题: Object
  • DBE_SQL_UTIL.enable_sql_patch enable_sql_patch是用于在当前建立连接的CN上开启SQL PATCH的接口函数,返回执行是否成功。 限制仅初始用户、sysadmin、opradmin、monadmin用户有权限调用。 CN之间SQL PATCH不共享,要在各个CN上单独执行。 开启负载均衡场景或者需要指定创建的CN的场景,推荐使用DBE_SQL_UTIL.enable_remote_sql_patch接口进行开启操作。 表1 DBE_SQL_UTIL.enable_sql_patch入参和返回值列表 参数 类型 描述 patch_name IN name PATCH名称。 result OUT bool 执行是否成功。 父主题: DBE_SQL_UTIL Schema
  • 配置设置函数 配置设置函数是可以用于查询以及修改运行时配置参数的函数。 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_working_grand_version_num_manually(tmp_version) 描述:通过切换授权版本号来更新和升级高斯数据库的新特性。 返回值类型:void shell_in(type) 描述:为shell类型输入路由(那些尚未填充的类型)。 返回值类型:void shell_out(type) 描述:为shell类型输出路由(那些尚未填充的类型)。 返回值类型:void 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) 父主题: 系统管理函数
  • 语法格式 修改自定义函数的附加参数。 1 2 ALTER FUNCTION function_name ( [ { [ argname ] [ argmode ] argtype} [, ...] ] ) action [ ... ] [ RESTRICT ]; 其中附加参数action子句语法为。 1 2 3 4 5 6 7 8 9 10 11 {CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT} | {IMMUTABLE | STABLE | VOLATILE} | {SHIPPABLE | NOT SHIPPABLE} | {NOT FENCED | FENCED} | [ NOT ] LEAKPROOF | { [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER } | AUTHID { DEFINER | CURRENT_USER } | COST execution_cost | ROWS result_rows | SET configuration_parameter { { TO | = } { value | DEFAULT }| FROM CURRENT} | RESET {configuration_parameter | ALL} 修改自定义函数的名称。 1 2 ALTER FUNCTION funname ( [ { [ argname ] [ argmode ] argtype} [, ...] ] ) RENAME TO new_name; 修改自定义函数的所属者。 1 2 ALTER FUNCTION funname ( [ { [ argname ] [ argmode ] argtype} [, ...] ] ) OWNER TO new_owner; 修改自定义函数的模式。 1 2 ALTER FUNCTION funname ( [ { [ argname ] [ argmode ] argtype} [, ...] ] ) SET SCHEMA new_schema;
  • 示例 请参见CREATE FUNCTION的示例。 重编译示例: --开启依赖功能。 gaussdb=# set behavior_compat_options ='plpgsql_dependency'; --创建函数。 gaussdb=# create or replace function test_func(a int) return int is proc_var int; begin proc_var := a; return 1; end; / --用函数名重编译函数。 gaussdb=# alter procedure test_func compile; --用函数带类型签名重编译存储过程。 gaussdb=# alter procedure test_func(int) compile;
  • 参数说明 function_name 要修改的函数名称。 取值范围:已存在的函数名。 argmode 标识该参数是输入、输出参数。 取值范围:IN/OUT/IN OUT argname 参数名称。 取值范围:字符串,符合标识符命名规范。 argtype 参数类型。 取值范围:有效的类型,请参考数据类型。 CALLED ON NULL INPUT 表明该函数的某些参数是NULL的时候可以按照正常的方式调用。缺省时与指定此参数的作用相同。 RETURNS NULL ON NULL INPUT STRICT STRICT用于指定如果函数的某个参数是NULL,此函数总是返回NULL。如果声明了这个参数,则如果存在NULL参数时不会执行该函数;而只是自动假设一个NULL结果。 RETURNS NULL ON NULL INPUT和STRICT的功能相同。 IMMUTABLE 表示该函数在给出同样的参数值时总是返回同样的结果。 STABLE 表示该函数不能修改数据库,对相同参数值,在同一次表扫描里,该函数的返回值不变,但是返回值可能在不同SQL语句之间变化。 VOLATILE 表示该函数值可以在一次表扫描内改变,不会做任何优化。 SHIPPABLE NOT SHIPPABLE 表示该函数是否可以下推到DN上执行。 对于IMMUTABLE类型的函数,函数始终可以下推到DN上执行。 对于STABLE/VOLATILE类型的函数,仅当函数的属性是SHIPPABLE的时候,函数可以下推到DN执行。 LEAKPROOF 表示该函数没有副作用,指出参数只包括返回值。LEAKROOF只能由系统管理员设置。 EXTERNAL (可选)目的是和SQL兼容,这个特性适合于所有函数,而不仅是外部函数 SECURITY INVOKER AUTHID CURREN_USER 表明该函数将以调用它的用户的权限执行。缺省时与指定此参数的作用相同。 SECURITY INVOKER和AUTHID CURREN_USER的功能相同。 SECURITY DEFINER AUTHID DEFINER 声明该函数将以创建它的用户的权限执行。 AUTHID DEFINER和SECURITY DEFINER的功能相同。 COST execution_cost 用来估计函数的执行成本。 execution_cost以cpu_operator_cost为单位。 取值范围:正数 ROWS result_rows 估计函数返回的行数。用于函数返回的是一个集合。 取值范围:正数,默认值是1000行。 configuration_parameter value 把指定的数据库会话参数值设置为给定的值。如果value是DEFAULT或者RESET,则在新的会话中使用系统的缺省设置。OFF关闭设置。 取值范围:字符串 DEFAULT OFF RESET 指定默认值。 from current 取当前会话中的值设置为configuration_parameter的值。 new_name 函数的新名称。要修改函数的所属模式,必须拥有新模式的CREATE权限。 取值范围:字符串,符合标识符命名规范。 new_owner 函数的新所有者。要修改函数的所有者,新所有者必须拥有该函数所属模式的CREATE权限。需要注意注意的是:仅有初始化用户才可以将函数的owner设置为初始化用户。 取值范围:已存在的用户角色。 new_schema 函数的新模式。 取值范围:已存在的模式。
  • 注意事项 只有函数的所有者或者被授予了函数ALTER权限的用户才能执行ALTER FUNCTION命令,系统管理员默认拥有该权限。针对所要修改属性的不同,对其还有以下权限约束: 如果函数中涉及对临时表相关的操作,则无法使用ALTER FUNCTION。 修改函数的所有者或修改函数的模式,当前用户必须是该函数的所有者或者系统管理员,且该用户是新所有者角色的成员。 只有系统管理员和初始化用户可以将function的schema修改成public。
  • GS_MATVIEWS GS_MATVIEWS视图提供了关于数据库中每一个物化视图的信息。 表1 GS_MATVIEWS字段 名称 类型 引用 描述 schemaname name PG_NAMESPACE.nspname 物化视图的模式名。 matviewname name PG_CLASS.relname 物化视图名。 matviewowner name PG_AUTHID.Erolname 物化视图的所有者。 tablespace name PG_TABLESPACE.spcname 物化视图的表空间名(如果使用数据库默认表空间则为空) hasindexes boolean - 如果物化视图有(或者最近有过)任何索引,则此列为真。 definition text - 物化视图的定义(一个重构的SELECT查询)。 父主题: 系统视图
  • TRANSACTIONS_PREPARED_XACTS 显示当前准备好进行两阶段提交的事务的信息。 表1 TRANSACTIONS_PREPARED_XACTS字段 名称 类型 描述 transaction xid 预备事务的数字事务标识。 gid text 赋予该事务的全局事务标识。 prepared timestamp with time zone 事务准备好提交的时间。 owner name 执行该事务的用户的名称。 database name 执行该事务所在的数据库名。 父主题: Transaction
  • MY_SOURCE MY_SOURCE视图显示当前用户拥有的存储过程、函数、触发器的定义信息。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 MY_SOURCE字段 名称 类型 描述 owner name 对象的所有者。 name name 对象名字。 type name 对象类型:function、procedure、trigger。 line numeric 此行来源的行号。 text text 存储对象的文本来源。 origin_con_id character varying(256) 暂不支持,值为0。 父主题: 系统视图
  • 参数 表1 数据库连接参数 参数名称 参数说明 host 主机IP地址,也可通过环境变量${PGHOST}来指定。 port 主机服务器的端口号,也可通过环境变量${PGPORT}来指定。 dbname 数据库名,也可通过环境变量${PGDATABASE}来指定。 user 要连接的用户名,也可通过环境变量${PGUSER}来指定。 password 要连接用户对应的连接密码。 connect_timeout 用于连接服务器操作的超时值,也可通过环境变量${PGCONNECT_TIMEOUT}来指定。 sslmode 启用SSL加密的方式,也可通过环境变量${PGSSLMODE}来指定。 参数取值范围: disable:不使用SSL安全连接。 allow:如果数据库服务器要求使用,则可以使用SSL安全加密连接,但不验证数据库服务器的真实性。 prefer:如果数据库支持,那么首选使用SSL安全加密连接,但不验证数据库服务器的真实性。 require:必须使用SSL安全连接,但是只做了数据加密,而并不验证数据库服务器的真实性。 verify-ca:必须使用SSL安全连接,并验证服务器是否具有由可信任的证书机构签发的证书。 verify-full:必须使用SSL安全连接,并且验证服务器是否具有由可信任的证书机构签发的证书,以及验证服务器主机名是否与证书中的一致。 sslkey 指定用于客户端证书的密钥位置,如果需要走SSL连接,并且该参数未指定,可通过设置环境变量${PGSSLKEY}来指定。 sslcert 指定客户端SSL证书的文件名,或者通过设置环境变量${PGSSLCERT}来指定。 sslrootcert 指定一个包含SSL证书机构(CA)证书的文件名称,或者通过设置环境变量${PGSSLROOTCERT}来指定。 sslcrl 指定SSL证书撤销列表(CRL)的文件名。列在这个文件中的证书如果存在,在尝试认证该服务器证书时会被拒绝,从而连接失败。也可通过环境变量${PGSSLCRL}来指定。 sslpassword 指定对密钥解密成明文的密码短语,当指定该参数的时候表示sslkey是一个加密存储的文件,当前sslkey支持des/aes加密方式。 说明: DES加密算法安全性低,存在安全风险,建议使用更安全的加密算法。 disable_prepared_binary_result 字符串类型,若设置为yes,表示此连接在从预准备语句接收查询结果时不应使用二进制格式。该参数仅用于调试。 取值范围:yes/no。 binary_parameters 字符串类型,该参数表示是否始终以二进制形式发送[]byte。取值范围:yes/no。若该参数设置为yes,建议绑定参数按照[]byte绑定,可以减少内部类型转换。 target_session_attrs 指定数据库的连接类型,该参数用于识别主备节点,也可通过环境变量${PGTARGETSESSIONATTRS}来指定。默认值为“any”,共有六种:any、master、slave、preferSlave、read-write、read-only。 any:尝试连接URL连接串中的任何一个数据节点。 master:尝试连接到URL连接串中的主节点,如果找不到就抛出异常。 slave:尝试连接到URL连接串中的备节点,如果找不到就抛出异常。 preferSlave:尝试连接到URL连接串中的备数据节点(如果有可用的话),否则连接到主数据节点。 read-write:读写模式,表示只能连接主节点。 read-only:只读模式,表示只能连接备节点。 loggerLevel 日志级别,打印相关调试信息,也可通过环境变量${PGLOGGERLEVEL}来指定。 支持trace/debug/info/warn/error/none,级别从高到低。 application_name 设置正在使用连接的GO驱动的名称。缺省值为go-driver,该参数不建议用户配置。 RuntimeParams 要在连接上设置为会话默认值的运行时参数。例如参数名search_path,application_name,timezone等。各参数的详细介绍参见客户端连接缺省设置,可通过show语法查看参数是否设置成功。 autoBalance 字符串类型,分布式环境下,使用该参数开启负载均衡连接。默认值为false,共有六种:true、balance、roundrobin、shuffle、priorityn、false。 设置为true、balance或roundrobin时,表示开启go sql负载均衡功能,将应用程序的多个连接均衡到数据库集群中各个可用的CN。 例如:gauss://user:password@host1:port1,host2:port2/database?autoBalance=true Driver将定期获取(周期刷新可使用参数refreshCNIpsTime配置,默认为10s)整个集群可用CN列表,比如获取到的列表为:host1:port1,host2:port2,host3:port3,host4:port4。 host1和host2在autoBalance启用时,仅在首次连接做高可用用途,后续Driver将从host3,host4,host1,host2中依次选择可用的CN刷新可用CN列表,后续用户调用的Connector.Connect将使用RoundRobin算法从host1,host2,host3,host4选取CN主机进行连接。 设置为priorityn表示开启Driver优先级负载均衡功能,将应用程序的多个连接首先均衡到url上配置的前n个中可用的CN数据库节点,当url上配置前n个节点全部不可用时,连接会随机分配到数据库集群中其他可用CN数据库节点。n为数字,不小于0,且小于url上配置的CN数量。 例如:gauss://user:password@host1:port1,host2:port2,host3:port3/database?autoBalance=priority2 Driver将定期获取(周期按refreshCNIpsTime定义)整个集群可用CN列表,比如获取到的列表为:host1:port1,host2:port2,host3:port3,host4:port4,host5:port5,host6:port6,其中host1和host2处于AZ1,host3和host4处于AZ2。 Driver将从优先从host1,host2中做负载均衡,host1和host2全部不可用才从host3, host4, host5, host6中随机选择CN主机连接。 设置为shuffle表示开启Driver随机负载均衡功能,将应用程序的多个连接随机均衡到数据库集群中的各个可用CN。 例如:gauss://user:password@host1:port1,host2:port2,host3:port3/database?autoBalance=shuffle Driver将定期获取(周期刷新可使用参数refreshCNIpsTime配置,默认为10S)整个集群的可用CN列表,比如获取到的列表为:host1:port1,host2:port2,host3:port3,host4:port4。 host1:port1,host2:port2,host3:port3,仅在首次连接做高可用,后续连接将在刷新后的CN列表中,使用shuffle算法随机选用一个CN节点进行连接。 设置为false时为集中式场景,不开启Driver负载均衡功能和优先级负载均衡功能。默认为false。 注意: 负载均衡是基于连接级别,不是基于事务级别。如果连接是长连接,并且连接上的负载不均衡,无法保证CN主机上的负载是均衡的。 负载均衡仅能在分布式场景下使用,集中式环境中不可使用。 说明: 负载均衡是基于连接级别,不是基于事务级别。如果连接是长连接,并且连接上的负载不均衡,无法保证CN主机上的负载是均衡的。 负载均衡仅能在分布式场景下使用,集中式环境中不可使用。 recheckTime integer类型,定期检测数据库集群中CN状态,获取可用CN的IP列表的时间间隔,取值范围为5到60秒,默认为10秒。 usingEip boolean类型。此值用于控制是否使用弹性公网IP做负载均衡。默认值为true,表示使用弹性公网IP做负载均衡;false表示使用数据IP做负载均衡。
  • 示例 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 --创建SCHEMA。 gaussdb=# CREATE SCHEMA tpcds; --创建表reason。 gaussdb=# CREATE TABLE tpcds.reason ( CD_DEMO_SK INTEGER NOT NULL, CD_GENDER character(16) , CD_MARITAL_STATUS character(100) ); --插入数据。 gaussdb=# INSERT INTO tpcds.reason VALUES(51, 'AAAAAAAADDAAAAAA', 'reason 51'); --创建表reason_t1。 gaussdb=# CREATE TABLE tpcds.reason_t1 AS TABLE tpcds.reason; --为一个INSERT语句创建一个预备语句然后执行它。 gaussdb=# PREPARE insert_reason(integer,character(16),character(100)) AS INSERT INTO tpcds.reason_t1 VALUES($1,$2,$3); gaussdb=# EXECUTE insert_reason(52, 'AAAAAAAADDAAAAAA', 'reason 52'); --删除表reason和reason_t1。 gaussdb=# DROP TABLE tpcds.reason; gaussdb=# DROP TABLE tpcds.reason_t1; --删除SCHEMA。 gaussdb=# DROP SCHEMA tpcds CASCADE;
  • V_MYSTAT V_MYSTAT视图显示数据库所有会话的统计信息。该视图只有系统管理员可以访问,普通用户需要授权才能访问,该视图同时存在于PG_CATALOG和SYS Schema下。 表1 V_MYSTAT字段 名称 类型 描述 sid numeric 当前会话的ID。 statistic# numeric 暂不支持,值为NULL。 value numeric 暂不支持,值为NULL。 con_id numeric 暂不支持,值为NULL。 父主题: 系统视图
  • PG_STAT_XACT_USER_FUNCTIONS PG_STAT_XACT_USER_FUNCTIONS视图包含每个函数的执行的统计信息。 表1 PG_STAT_XACT_USER_FUNCTIONS字段 名称 类型 描述 funcid oid 函数标识。 schemaname name 模式的名称。 funcname name 函数名称。 calls bigint 函数被调用的次数。 total_time double precision 函数的总执行时长。 self_time double precision 当前线程调用函数的总的时长。 父主题: 系统视图
  • WDR Snapshot Schema WDR Snapshot在启动后(打开GUC参数enable_wdr_snapshot),会在用户表空间“pg_default”,数据库“postgres”下的Snapshot Schema中创建对象,用于持久化WDR快照数据,默认初始化用户或监控管理员用户可以访问和操作Snapshot Schema下的对象。 根据GUC参数wdr_snapshot_retention_days来自动管理快照的生命周期。 WDR Snapshot原信息 WDR Snapshot数据表 WDR报告信息介绍 父主题: Schema
  • GS_POLICY_LABEL GS_POLICY_LABEL系统表记录资源标签配置信息,一个资源标签对应着一条或多条记录,每条记录标记了数据库资源所属的资源标签。需要有系统管理员或安全策略管理员权限才可以访问此系统表。 FQDN(Fully Qualified Domain Name)标识了数据库资源所属的绝对路径。 表1 GS_POLICY_LABEL表字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 labelname name 资源标签名称。 labeltype name 资源标签类型,目前仅为RESOURCE。 fqdnnamespace oid 被标识的数据库资源所属的namespace oid。 fqdnid oid 被标识的数据库资源的oid,若数据库资源为列,则该列为所属表的oid。 relcolumn name 列名,若被标识的数据库资源为列,该列指出列名,否则该列为空。 fqdntype name 被标识的数据库资源的类型名称,例如schema、table、column、view等。 父主题: 系统表
共100000条