华为云用户手册

  • DB_PART_COL_STATIS TICS DB_PART_COL_STATISTI CS 视图显示当前用户可访问的表分区的列统计信息和直方图信息。所有用户都可以访问该视图。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 DB_PART_COL_STATISTICS字段 名称 类型 描述 owner character varying(128) 分区表的所有者。 table_name character varying(128) 表名。 partition_name character varying(128) 表分区名称。 column_name character varying(4000) 列名。 num_distinct numeric 暂不支持,值为NULL。 low_value raw 暂不支持,值为NULL。 high_value raw 暂不支持,值为NULL。 density numeric 暂不支持,值为NULL。 num_nulls numeric 暂不支持,值为NULL。 num_buckets numeric 暂不支持,值为NULL。 sample_size numeric 暂不支持,值为NULL。 last_analyzed timestamp(0) without time zone 暂不支持,值为NULL。 global_stats character varying(3) 暂不支持,值为NULL。 user_stats character varying(3) 暂不支持,值为NULL。 notes character varying(63) 暂不支持,值为NULL。 avg_col_len numeric 暂不支持,值为NULL。 histogram character varying(15) 暂不支持,值为NULL。 schema character varying(64) 列所属的名称空间的名称。 父主题: 分区表
  • 功能描述 SET CONSTRAINTS设置当前事务检查行为的约束条件。 IMMEDIATE约束是在每条语句后面进行检查。DEFERRED约束一直到事务提交时才检查。每个约束都有自己的模式。 从创建约束条件开始,一个约束总是设定为DEFERRABLE INITIALLY DEFERRED、DEFERRABLE INITIALLY IMMEDIATE和NOT DEFERRABLE三个特性之一。第三种总是IMMEDIATE,并且不会受SET CONSTRAINTS影响。前两种以指定的方式启动每个事务,但是其行为可以在事务里用SET CONSTRAINTS改变。 带着一个约束名列表的SET CONSTRAINTS改变这些约束的模式(都必须是可推迟的)。如果有多个约束匹配某个名称,则所有都会被影响。SET CONSTRAINTS ALL改变所有可推迟约束的模式。 当SET CONSTRAINTS把一个约束从DEFERRED改成IMMEDIATE的时候,任何将在事务结束准备进行的数据修改都将在SET CONSTRAINTS的时候执行检查。如果违反了任何约束,SET CONSTRAINTS都会失败(并且不会修改约束模式)。因此,SET CONSTRAINTS可以用于强制在事务中某一点进行约束检查。
  • PG_CLASS PG_CLASS系统表存储数据库对象信息及其之间的关系。 表1 PG_CLASS字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 relname name 表、索引、视图等对象的名称。 relnamespace oid 包含这个关系的名称空间的OID。 reltype oid 对应这个表的行类型的数据类型(索引为零,因为索引没有pg_type记录)。 reloftype oid 复合类型的OID,0表示其他类型。 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:表示索引。 I:表示分区表GLOBAL索引。 S:表示序列。 L:表示长序列。 v:表示视图。 c:表示复合类型。 t:表示TOAST表。 f:表示外表。 m:表示物化视图。 relnatts smallint 关系中用户字段数目(除了系统字段以外)。在13.2.15.25 PG_ATTRIBUTE里有相同数目对应行。 relchecks smallint 表里的检查约束的数目,参阅13.2.15.29 PG_CONSTRAINT表。 relhasoids boolean 如果为关系中每行都生成一个OID则为真,否则为假。 relhaspkey boolean 如果这个表有一个(或者曾经有一个)主键则为真,否则为假。 relhasrules boolean 如表有规则就为真。是否有规则可参考系统表13.2.15.62 PG_REWRITE。 relhastriggers boolean True表示表中有触发器,或者曾经有过触发器。系统表13.2.15.71 PG_TRIGGER中记录了表和视图的触发器。 relhassubclass boolean 如果有(或者曾经有)任何继承的子表为真,否则为假。 relcmprs tinyint 表示是否启用表的压缩特性。需要特别注意,当且仅当批量插入才会触发压缩,普通的CRUD并不能够触发压缩。 0表示其他不支持压缩的表(主要是指系统表,不支持压缩属性的修改操作)。 1表示表数据的压缩特性为NOCOMPRESS或者无指定关键字。 2表示表数据的压缩特性为COMPRESS。 relrowmovement boolean 针对分区表进行update操作时,是否允许行迁移。 true:表示允许行迁移。 false:表示不允许行迁移。 parttype "char" 表或者索引是否具有分区表的性质。 p:表示带有分区表性质。 n:表示没有分区表特性。 s:表示该表为二级分区表。 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)。 对于全局临时表,该字段无实际意义。各会话的全局临时表的relfrozenxid64可在pg_catalog.pg_gtt_relstats视图中查看。 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 * 给前面权限的授权选项 父主题: 其他系统表
  • 参数说明 configuration_parameter 运行时参数的名称。 取值范围:可以使用SHOW ALL命令查看运行时参数。 部分通过SHOW ALL查看的参数不能通过SET设置,如max_datanodes。 CURRENT_SCHEMA 当前模式。 TIME ZONE 时区。 TRANSACTION ISOLATION LEVEL 事务的隔离级别。 SESSION AUTHORIZATION 当前会话的用户标识符。 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 --显示timezone参数值。 gaussdb=# SHOW timezone; TimeZone ---------- PRC (1 row) --显示当前模式。 gaussdb=# SHOW CURRENT_SCHEMA; current_schema ---------------- "$user",public (1 row) --显示事务的隔离级别。 gaussdb=# SHOW TRANSACTION ISOLATION LEVEL; transaction_isolation ----------------------- read committed (1 row) --显示当前会话的用户标识符。 gaussdb=# SHOW SESSION AUTHORIZATION; session_authorization ----------------------- omm1 (1 row) --显示所有参数。 gaussdb=# SHOW ALL; --显示参数名中包含”var”的所有参数。 gaussdb=# SHOW VARIABLES LIKE var;
  • 参数说明 @queryblock请参见指定Hint所处于的查询块Queryblock,可省略,表示在当前查询块生效,该hint只在指定为最外层的queryblock时才会生效。 param表示参数名。 value表示参数的取值。 目前支持使用hint设置生效的参数有: 布尔类: enable_bitmapscan、enable_hashagg、enable_hashjoin、enable_indexscan、enable_indexonlyscan、enable_material、enable_mergejoin、enable_nestloop、enable_index_nestloop、enable_seqscan、enable_sort、enable_tidscan、partition_iterator_elimination、partition_page_estimation、enable_functional_dependency、var_eq_const_selectivity、enable_inner_unique_opt、enable_force_smp、enable_invisible_indexes 整型类: query_dop,multi_insert_min_rows, join_collapse_limit, from_collapse_limit 浮点类: cost_weight_index、default_limit_rows、seq_page_cost、random_page_cost、cpu_tuple_cost、cpu_index_tuple_cost、cpu_operator_cost、effective_cache_size 枚举类型: try_vector_engine_strategy 设置不在白名单中的参数,参数取值不合法,或hint语法错误时,不会影响查询执行的正确性。使用explain(verbose on)执行可以看到hint解析错误的报错提示。 GUC参数的hint只在最外层查询生效,子查询内的GUC参数hint不生效。 视图定义内的GUC参数hint不生效。 CREATE TABLE ... AS ...查询最外层的GUC参数hint可以生效。
  • 选择数据类型 高效数据类型,主要包括以下三方面: 使用执行效率更高的数据类型 通常情况下,整型数据运算(包括“=”、“>”、“<”、“≧”、“≦”、“≠”等常规的比较运算,以及GROUP BY)的效率比字符串和浮点数的效率高。 使用短字段的数据类型 长度较短的数据类型不仅可以减小数据文件的大小,提升I/O性能,同时也可以减小相关计算时的内存消耗,提升计算性能。比如,对于整型数据,如果可以使用smallint,那么尽量避免使用用int,如果可以使用int,那么尽量避免使用bigint。 使用一致的数据类型 表关联列尽量使用相同的数据类型。如果表关联列数据类型不同,数据库必须动态地转化为相同的数据类型进行比较,这种转换会带来一定的性能开销。 父主题: 审视和修改表定义
  • PG_SET PG_SET系统表存储SET数据类型定义的元数据。 表1 PG_SET字段 名称 类型 描述 settypid oid SET数据类型的OID。 setnum tinyint SET数据类型的成员数量,最大64个成员。 setsortorder tinyint SET数据类型定义时成员的排序位置,从0开始编号。 setlabel text SET数据类型的成员名称。 collation oid 用于M兼容SET和ENUM数据类型的字符集校验规则,仅M兼容模式用到该字段。 numbers integer 用于M兼容SET和ENUM数据类型的成员数量,仅M兼容模式用到该字段。 sortorder integer 用于M兼容SET和ENUM数据类型定义时成员的排序位置,仅M兼容模式用到该字段。 父主题: 其他系统表
  • GS_ADM_ILMPA RAM ETERS GS_ADM_ILMPARAMETERS视图描述ILM调度与执行的相关环境参数,该参数可通过DBE_ILM_ADMIN.CUSTOMIZE_ILM接口进行修改。默认只有系统管理员权限才可以访问此系统视图。 表1 GS_ADM_ILMPARAMETERS字段 名称 类型 描述 name character varying(128) ADO相关的环境参数,通过DBE_ILM_ADMIN.CUSTOMIZE_ILM接口进行修改。 value numeric 参数取值。 父主题: OLTP表压缩
  • 创建表 执行如下命令创建表。 1 2 3 4 5 6 7 gaussdb=# CREATE TABLE customer_t1 ( c_customer_sk integer, c_customer_id char(5), c_first_name char(6), c_last_name char(8) ); 当结果显示为如下信息,则表示创建成功。 1 CREATE TABLE 其中c_customer_sk 、c_customer_id、c_first_name和c_last_name是表的字段名,integer、char(5)、char(6)和char(8)分别是这四个字段的类型。 默认情况下,新的数据库对象是创建在“$user”模式下的。关于模式的更多信息请参见管理Schema。 除了创建的表以外,数据库还包含很多系统表。这些系统表包含数据库安装信息以及 GaussDB 上运行的各种查询和进程的信息。可以通过查询系统表来收集有关数据库的信息。请参见查看系统表。 GaussDB支持行存储,为各种复杂场景下的交互分析提供较高的查询性能 关于创建表的更多信息请参见CREATE TABLE。
  • 参数 表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,级别从高到低。 说明: 日志或报错信息中若含有安全相关关键字(PASSWORD、GS_ENCRYPT、IDENTIFIED等),Go驱动会使用******代替相关信息。 application_name 设置正在使用连接的GO驱动的名称。缺省值为go-driver,该参数不建议用户配置。 RuntimeParams 设置连接会话时默认运行的set类型的guc参数的值。例如参数名search_path、application_name、timezone等。各参数的详细介绍参见客户端连接缺省设置,可通过show语法查看参数是否设置成功。 enable_ce 密态数据库开关。enable_ce=1表示go驱动支持密态等值查询基本能力,enable_ce=3表示go驱动支持内存解密逃生通道,不设置或其他值表示不开启密态数据库。 key_info 与enable_ce一起使用,在密态数据库中,用于设置访问外部密钥管理者的参数。 auto_sendtoken 自动传输密钥模式开关。auto_sendtoken=yes表示在DB实例连接池connection初始化时自动触发密钥传输操作,设置为no或不设置表示关闭该模式。注意,该模式无法保证密钥信息及时更新,同时当且仅当设置enable_ce=3时该模式可以被开启。 tcp_syn_retries 设置TCP连接的重试次数。若不设置此参数则与连接时设备上默认的重试次数一致。此参数建议设置时间小于connect_timeout设置时间。 socketTimeout 设置读写超时时间,如果业务语句执行或者从网络读取数据流超过此阈值,连接中断(即语句超过规定时间执行,没有数据返回的时候)。 说明: 该参数限制单SQL最长的执行时间,单语句执行超过该值则会中断重连,建议根据业务特征进行配置,如果未配置,默认为0,即不会超时。
  • DB4AI.CREATE_SNAPSHOT CREATE_SNAPSHOT是DB4AI特性用于创建快照的接口函数,如表1所示。通过语法CREATE SNAPSHOT调用。 表1 DB4AI.CREATE_SNAPSHOT入参和返回值列表 参数 类型 描述 i_schema IN NAME 快照存储的模式名字,默认值是当前用户或者PUBLIC。 i_name IN NAME 快照名称。 i_commands IN TEXT[] 定义数据获取的SQL命令。 i_vers IN NAME 版本后缀。 i_comment IN TEXT 快照描述。 res OUT db4ai.snapshot_name 结果。 父主题: DB4AI Schema
  • GS_MASKING_POLICY GS_MASKING_POLICY系统表记录动态数据脱敏策略的主体信息,每条记录对应一个脱敏策略。需要有系统管理员或安全策略管理员权限才可以访问此系统表。 表1 GS_MASKING_POLICY表字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 polname name 策略名称,唯一不可重复。 polcomments name 策略描述字段,记录策略相关的描述信息,通过COMMENTS关键字体现。 modifydate timestamp without time zone 策略创建或修改的最新时间戳。 polenabled boolean 策略启动开关。 t(true):表示策略启动。 f(false):表示策略没有启动。 父主题: 动态脱敏
  • PG_AVAILABLE_EXTENSION_VERSIONS PG_AVAILABLE_EXTENSION_VERSIONS视图显示数据库中某些特性的扩展版本信息。该视图为内部使用,不建议用户使用。 表1 PG_AVAILABLE_EXTENSION_VERSIONS字段 名称 类型 描述 name name 扩展名。 version text 版本名。 installed boolean 如果这个扩展的版本是当前已经安装了的则为真。 superuser boolean 如果只允许系统管理员安装这个扩展则为真。 relocatable boolean 如果扩展可以重新加载到另一个模式则为真。 schema name 扩展必须安装到的模式名,如果部分或全部可重新定位则为NULL。 requires name[] 先决条件扩展的名称,如果没有则为NULL。 comment text 扩展的控制文件中的评论。 父主题: 其他系统视图
  • alarm_component 参数说明:在告警上报时,会进行告警抑制,即同一个实例的同一个告警项在alarm_report_interval(默认值为10s)内不做重复上报。在这种情况下设置用于处理告警内容的告警组件的位置,仅sysadmin用户可以访问。 参数类型:字符串 参数单位:无 取值范围:合法文件名称。 若前置脚本gs_preinstall中的--alarm-type参数设置为5时,表示未对接第三方组件,告警写入system_alarm日志,此时GUC参数alarm_component的取值为:/opt/huawei/snas/bin/snas_cm_cmd。 若前置脚本gs_preinstall中的--alarm-type参数设置为1时,表示对接第三方组件,此时GUC参数alarm_component的值为第三方组件的可执行程序的绝对路径。 默认值:"/opt/huawei/snas/bin/snas_cm_cmd" 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • table_skewness_warning_threshold 参数说明:设置用于表倾斜告警的阈值。该参数可在PDB级别设置。 参数类型:浮点型 参数单位:无 取值范围:0 ~ 1 默认值:1。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值,并根据业务场景对表倾斜的敏感度适时调整。 设置不当的风险与影响:设置较小时,可能对表倾斜更敏感,无显著风险。
  • table_skewness_warning_rows 参数说明:设置用于表倾斜告警的行数。该参数可在PDB级别设置。 参数类型:整型 参数单位:无 取值范围:0 ~ 2147483647 默认值:100000。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值,并根据业务场景对表倾斜的敏感度适时调整。 设置不当的风险与影响:设置较小时,可能对表倾斜更敏感,无显著风险。
  • connection_alarm_rate 参数说明:设置允许和数据库连接的最大并发连接数的比率限制。数据库连接的最大并发连接数为max_connections* connection_alarm_rate。当并发连接数超过max_connections* connection_alarm_rate时,后台会打印连接信息的日志connection_log,日志中可以查看pg_stat_activity视图和线程池视图LOCAL_THREADPOOL_STATUS(查看pg_stat_activity视图需要开启追踪功能,查看线程池视图LOCAL_THREADPOOL_STATUS需要开启线程池功能)。 参数类型:浮点型 参数单位:无 取值范围:0 ~ 1 默认值:0.9 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • alarm_report_interval 参数说明:指定告警上报的时间间隔。 参数类型:整型 参数单位:s(秒) 取值范围:0 ~ 2147483647 默认值:10 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。设置时取值不能带单位。 设置建议:推荐使用默认值。 设置不当的风险与影响: 该值设置过大时,若指定告警上报时间间隔内检测出多次相同告警,会丢失关键告警。 该值设置过小时,若指定告警上报时间间隔内持续检测出同一告警,告警会频繁上报。
  • enable_alarm 参数说明:设置是否打开告警上报线程,上报数据库中可能的故障场景。 参数类型:布尔型 参数单位:无 取值范围: on:表示打开告警上报线程。 off:表示关闭告警上报线程。 默认值:on 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:关闭该参数会导致用户无法感知数据库中的某些故障场景。 该参数生效范围仅为DN节点。
  • 注意事项 只有拥有表INSERT权限的用户,才可以向表中插入数据。用户被授予INSERT ANY TABLE权限,即用户对除系统模式之外的任何模式具有USAGE权限,并且拥有这些模式下表的INSERT权限。 如果使用QUERY子句插入来自查询里的数据行,用户还需要拥有在查询里使用的表的SELECT权限。 生成列不能被直接写入。在INSERT命令中不能为生成列指定值,但可以指定关键字DEFAULT。 仅支持在A兼容模式下执行该语法。
  • 参数说明 plan_hint子句 以/*+ */的形式在INSERT关键字后,目前仅适配了语法格式,并未实现具体功能。 ALL | FIRST 如果不带条件子句(WHEN condition THEN),此关键字不可省略,且只能为ALL。如果含有条件子句,此关键字可以省略,默认为ALL,此时ALL和FIRST的含义分别为: ALL:遍历所有匹配条件的分支,只要满足条件就会将数据插入对应的表。 FIRST:找到第一个满足条件的分支后,将数据插入该分支对应的表,不会再继续检查剩余分支的。 WHEN condition THEN 插入表时的条件判断,只有满足条件才会进行插入操作,condition中可以引用子查询(SUBQUERY)中的列。 table_name 要插入数据的目标表名。 取值范围:已存在的表名。 alias_name INSERT语句不包含AS alias语法时的表别名。 INTO子句不包含AS alias语法时的表别名不能为关键字(如SELECT、VALUE)或者表达式,表别名要求符合标识符命名规范。 INTO子句不包含AS alias语法时的表别名不支持INTO table_name alias_name(alias_name.col1,...,alias_name.coln) VALUES(xxx);的语法格式。 INTO子句的分区表不包含AS alias语法时的表别名不支持指定分区插入操作。 partition_clause 指定分区插入操作。 PARTITION { ( partition_name ) | FOR ( partition_value [, ...] ) } | SUBPARTITION { ( subpartition_name ) | FOR ( subpartition_value [, ...] ) } 关键字具体信息请参见SELECT。 如果VALUE子句的值和指定分区不一致,结果会提示异常。 示例请参见CREATE TABLE SUBPARTITION。 column_name 目标表中的字段名称。 字段名可以由子字段名或者数组下标修饰。 没有在字段列表中出现的每个字段,将由系统默认值或者声明时的默认值填充,若无默认值或未声明时则使用NULL填充。例如,向一个复合类型中的某些字段插入数据的话,其他字段使用NULL填充。 目标字段(column_name)按顺序排列。如果没有列出任何字段,则默认全部字段,且顺序为表声明时的顺序。 如果VALUE子句和QUERY中只提供了N个字段,则目标字段为前N个字段。 VALUE子句和QUERY提供的值在表中从左到右关联到对应列。 取值范围:已存在的字段名。 VALUES 不可跟多行。 expression 赋予对应column的一个有效表达式或值。 向表中字段插入单引号(')时需要使用单引号对自身进行转义。 如果插入行的表达式不是正确的数据类型,系统将自动进行类型转换,若转换失败,则插入数据失败,系统返回错误信息。 不支持聚集函数。 不支持子查询。 DEFAULT 对应字段名的缺省值。如果没有缺省值,则为NULL。 subquery 一个查询语句(SELECT语句),将查询结果作为插入的数据,不可省略,如果没有子查询可以使用SELECT * FROM DUAL。 如果子查询带表别名,不可在CONDITION子句和INTO子句中引用该别名。
  • 语法格式 INSERT [/*+ plan_hint */] [ ALL | FIRST ] { [ WHEN condition THEN ] { INTO table_name [ { [alias_name] [ ( column_name [, ...] ) ] } | { [partition_clause] [ AS alias ] [ ( column_name [, ...] ) ] } ] [ VALUES {( { expression | DEFAULT } [, ...] ) } ] }[, ...] }[, ...] { subquery };
  • SUMMARY_STATIO_ALL_SEQUENCES SUMMARY_STATIO_ALL_SEQUENCES视图包含数据库内汇聚的数据库中每个序列的每一行,显示特定序列关于I/O的统计,如表1所示。 表1 SUMMARY_STATIO_ALL_SEQUENCES字段 名称 类型 描述 schemaname name 序列中模式名。 relname name 序列名。 blks_read numeric 从序列中读取的磁盘块数。 blks_hit numeric 序列中缓存命中数。 父主题: Cache/IO
  • 处理步骤 显式游标处理需六个PL/SQL步骤: 定义静态游标:就是定义一个游标名,以及与其相对应的SELECT语句。 定义静态游标的语法图,请参见图1。 图1 static_cursor_define::= 或 图2 static_cursor_define::= 参数说明: cursor_name:定义的游标名。 parameter:游标参数,只能为输入参数,参数支持定义默认值,以:=、=、default定义。其格式为: select_statement:查询语句。 根据执行计划的不同,系统会自动判断该游标是否可以用于以倒序的方式检索数据行。 语法上支持parameter为输出参数,但其行为与输入参数保持一致。 在exception内部会自动关闭。 定义动态游标:指ref游标,可以通过一组静态的SQL语句动态的打开游标。首先定义ref游标类型,然后定义该游标类型的游标变量,在打开游标时通过OPEN FOR动态绑定SELECT语句。 定义动态游标的语法图,请参见图3和图4。 图3 cursor_typename::= 图4 dynamic_cursor_define::= 打开静态游标:就是执行游标所对应的SELECT语句,将其查询结果放入工作区,并且指针指向工作区的首部,标识游标结果集合。如果游标查询语句中带有FOR UPDATE选项,OPEN语句还将锁定数据库表中游标结果集合对应的数据行。 打开静态游标的语法图,请参见图5。 图5 open_static_cursor::= 打开动态游标:可以通过OPEN FOR语句打开动态游标,动态绑定SQL语句。 打开动态游标的语法图,请参见图6。 图6 open_dynamic_cursor::= PL/SQL程序不能用OPEN语句重复打开一个游标。 提取游标数据:检索结果集合中的数据行,放入指定的输出变量中。 提取游标数据的语法图,请参见图7。 图7 fetch_cursor::= 对该记录进行处理。 继续处理,直到活动集合中没有记录。 关闭游标:当提取和处理完游标结果集合数据后,应及时关闭游标,以释放该游标所占用的系统资源,并使该游标的工作区变成无效,不能再使用FETCH语句获取其中数据。关闭后的游标可以使用OPEN语句重新打开。 关闭游标的语法图,请参见图8。 图8 close_cursor::=
  • 属性 游标的属性用于控制程序流程或者了解程序的状态。当运行DML语句时,PL/SQL打开一个内建游标并处理结果,游标是维护查询结果的内存中的一个区域,游标在运行DML语句时打开,完成后关闭。显式游标的属性为: %FOUND布尔型属性:当最近一次读记录时成功返回,则值为TRUE。 %NOTFOUND布尔型属性:当最近一次读记录时失败返回,则值为TRUE。 %ISOPEN布尔型属性:当游标已打开时返回TRUE。 %ROWCOUNT数值型属性:返回已从游标中读取的记录数。
  • PG_AMOP PG_AMOP系统表存储有关和访问方法操作符族关联的信息。如果一个操作符是一个操作符族中的成员,则在这个表中会占据一行。一个族成员是一个search操作符或一个ordering操作符。一个操作符可以在多个族中出现,但是不能在一个族中的多个搜索位置或多个排序位置中出现。 表1 PG_AMOP字段 名称 类型 引用 描述 oid oid - 行标识符(隐含属性,必须明确选择)。 amopfamily oid PG_OPFAMILY.oid 这个项的操作符族。 amoplefttype oid PG_TYPE.oid 操作符的左输入类型。可能取值及其描述见于7.3 数据类型。 amoprighttype oid PG_TYPE.oid 操作符的右输入类型。可能取值及其描述见于7.3 数据类型。 amopstrategy smallint - 操作符策略数。 amoppurpose "char" - 操作符目的。 s:表示搜索。 o:表示排序。 amopopr oid PG_OPERATOR.oid 该操作符的OID。 amopmethod oid PG_AM.oid 索引访问方式操作符族。 amopsortfamily oid PG_OPFAMILY.oid 如果是一个排序操作符,则为这个项排序所依据的btree操作符族;如果是一个搜索操作符,则为0。 search操作符表明这个操作符族的一个索引可以被搜索,找到所有满足WHERE indexed_column operator constant的行。显然,这样的操作符必须返回布尔值,并且它的左输入类型必须匹配索引的字段数据类型。 ordering操作符表明这个操作符族的一个索引可以被扫描,返回以ORDER BY indexed_column operator constant顺序表示的行。这样的操作符可以返回任意可排序的数据类型,它的左输入类型也必须匹配索引的字段数据类型。 ORDER BY的确切的语义是由amopsortfamily字段指定的,该字段必须为操作符的返回类型引用一个btree操作符族。 父主题: 其他系统表
  • GLOBAL_USER_TRANSACTION GLOBAL_USER_TRANSACTION用来统计全局用户执行的事务信息,如表1所示。多租场景下,non-PDB访问该视图时返回全部信息,PDB访问该视图时仅返回该PDB相关信息。 表1 GLOBAL_USER_TRANSACTION字段 名称 类型 描述 node_name name 节点名称。 username name 用户的名称。 commit_counter bigint 用户事务commit数量。 rollback_counter bigint 用户事务rollback数量。 resp_min bigint 用户事务最小响应时间(单位:微秒)。 resp_max bigint 用户事务最大响应时间(单位:微秒)。 resp_avg bigint 用户事务平均响应时间(单位:微秒)。 resp_total bigint 用户事务总响应时间(单位:微秒)。 bg_commit_counter bigint 后台事务commit数量。 bg_rollback_counter bigint 后台事务rollback数量。 bg_resp_min bigint 后台事务最小响应时间(单位:微秒)。 bg_resp_max bigint 后台事务最大响应时间(单位:微秒)。 bg_resp_avg bigint 后台事务平均响应时间(单位:微秒)。 bg_resp_total bigint 后台事务总响应时间(单位:微秒)。 dbid oid 数据库标识。 父主题: Workload
  • ADM_SCHEDULER_RUNNING_JOBS ADM_SCHEDULER_RUNNING_JOBS视图显示数据库中所有正在执行的DBE_SCHEDULER定时任务的信息。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_SCHEDULER_RUNNING_JOBS字段 名称 类型 描述 owner character varying(128) 定时任务所有者。 job_name character varying(128) 定时任务名。 job_subname character varying(128) 暂不支持,值为NULL。 job_style character varying(17) 定时任务行为模式,创建时指定,仅支持指定为“REGULAR”,不指定时为NULL。 detached character varying(5) 暂不支持,值为NULL。 session_id numeric 执行该定时任务的会话ID。 slave_process_id numeric 暂不支持,值为NULL。 slave_os_process_id character varying(12) 执行该任务的进程号。 running_instance numeric 暂不支持,值为NULL。 resource_consumer_group character varying(32) 暂不支持,值为NULL。 elapsed_time interval day to second(2) 定时任务本次已执行的时长。 cpu_used interval day to second(2) 暂不支持,值为NULL。 destination_owner character varying(261) 暂不支持,值为NULL。 destination character varying(261) 定时任务目标名称。 credential_owner character varying(128) 暂不支持,值为NULL。 credential_name character varying(128) 定时任务证书名称。 log_id numeric 暂不支持,值为NULL。 父主题: 其他系统视图
  • 注意事项 SET类型的表字段值必须是SET类型定义的集合的子集。如: gaussdb=# CREATE TABLE employee ( name text, site SET('beijing','shanghai','nanjing','wuhan') ); site字段的值必须是上述集合定义中的子集,可以是空集合,如果提供的值在SET定义中的成员中不存在,会报错。如: gaussdb=# INSERT INTO employee values('zhangsan', 'nanjing,beijing'); INSERT 0 1 gaussdb=# INSERT INTO employee VALUES ('zhangsan', 'hangzhou'); ERROR: invalid input value for set employee_site_set: 'hangzhou' INSERT时无论用户提供的成员值顺序是怎样的,INSERT成功后,查询到的SET类型的值,其成员都是按照定义时的顺序输出的。 gaussdb=# SELECT * FROM employee; name | site ----------+----------------- zhangsan | beijing,nanjing (1 rows) SET类型是以bitmap的方式存储的。SET类型的成员按照定义时的顺序,赋予不同的值。如:SET('beijing','shanghai','nanjing','wuhan') 的类型,对应的值如下: 表1 SET成员与其对应的数值 SET成员 成员值 二进制值 'beijing' 1 0001 'shanghai' 2 0010 'nanjing' 4 0100 'wuhan' 8 1000 因此,如果给SET类型的字段赋值为数值时,会转换为对应的子集。如:9对应的二进制值为 1001, 对应的子集是 'beijing,wuhan'。 gaussdb=# INSERT INTO employee values('lisi', 9); INSERT 0 1 gaussdb=# SELECT * FROM employee; name | site ----------+----------------- zhangsan | beijing,nanjing lisi | beijing,wuhan (2 rows) gaussdb=# DROP TABLE employee;
共100000条
提示

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