华为云用户手册

  • ssl_cert_notify_time 参数说明:SSL服务器证书到期前提醒的天数。建立连接初始化ssl证书时,若当前时间距离证书到期时间小于设定值,则在日志中打印过期提醒。 参数类型:整型 参数单位:d(天) 取值范围:7 ~ 180 默认值:90 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。取值如果要带单位,必须为d。 设置建议:推荐使用默认值。 设置不当的风险与影响:参数设置过小,可能导致服务端证书过期没有被提前感知,导致无法及时更换证书;设置过大,可能导致频繁告警。
  • ssl_renegotiation_limit 参数说明:指定在会话密钥重新协商之前,通过SSL加密通道可以传输的流量。这个重新协商流量限制机制可以减少攻击者针对大量数据使用密码分析法破解密钥的几率,但是也带来较大的性能损失。流量是指发送和接受的流量总和。该参数可在PDB级别设置。 参数类型:整型 参数单位:kB 取值范围:0 ~ 2147483647。其中0表示禁用重新协商机制。 默认值:0。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。例如,不带单位取值1024,表示ssl_renegotiation_limit为1024kB;带单位取值1MB,表示ssl_renegotiation_limit为1MB。取值如果要带单位,必须为kB、MB、GB。 设置建议:建议不做修改。使用SSL重协商机制可能引入其他风险,因此已禁用SSL重协商机制,为保持版本兼容保留此参数,修改参数配置不再起作用。 设置不当的风险与影响:修改该参数取值可能导致数据库出现意料之外的结果,请保持默认值。
  • ssl_cert_file 参数说明:指定包含SSL服务器证书的文件的名称,其相对路径是相对于数据目录的。 参数类型:字符串 参数单位:无 取值范围:合法文件名称,需要以“.crt”结尾。 默认值:"server.crt" 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:配置文件路径时,需要确保其与其余SSL相关证书/私钥配置文件是配套关系。 设置不当的风险与影响:文件路径错误时,会导致客户端与服务器无法建立SSL连接,数据库实例主备节点间无法SSL通信,数据存在泄漏风险。
  • ssl_enc_key_file 参数说明:指定包含SSL服务器国密加密证书私钥的文件的名称,其相对路径是相对于数据目录的。 参数类型:字符串 参数单位:无 取值范围:合法文件名称,需要以“.key”结尾。 默认值:"" 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:配置文件路径时,需要确保其与其余国密SSL相关证书/私钥配置文件是配套关系。 设置不当的风险与影响:文件路径错误时,会导致客户端与服务器无法建立国密SSL连接,数据库实例主备节点间无法进行国密SSL通信,数据存在泄漏风险。
  • ssl_crl_file 参数说明:指定包含证书吊销列表的文件的名称,如果客户端证书在该列表中,则当前客户端证书被视为无效证书。必须使用相对路径,相对路径是相对于数据目录的。 参数类型:字符串 参数单位:无 取值范围:合法文件名称,空字符串表示没有吊销列表。 默认值:"" 设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:若吊销列表中文件名称配置错误,可能导致无效的客户端证书可完成SSL建连,存在数据泄露风险;有效的客户端证书被视为已吊销,无法建立SSL连接。
  • auth_iteration_count 参数说明:认证加密信息生成过程中使用的迭代次数。 参数类型:整型 参数单位:无 取值范围:2048 ~ 134217728 默认值:10000 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:请根据实际硬件条件合理设置迭代次数,推荐采用默认迭代次数。 设置不当的风险与影响:迭代次数设置过小会降低口令存储的安全性,设置过大会导致认证、用户创建等涉及口令加密的场景性能劣化。
  • session_timeout 参数说明:表明与服务器建立连接后,不进行任何操作的最长时间。当该参数取值不为0,用户不进行任何操作的时间超过该参数取值后,会与服务器断开连接。该参数可在PDB级别设置。 参数类型:整型 参数单位:s(秒) 取值范围:0 ~ 86400(1d) 0表示关闭超时设置。 正数表示与服务器建立连接后,不进行任何操作的最长时间。当超过设定的值后,会与服务器断开连接。 默认值:600。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。例如,不带单位取值600,表示session_timeout为600s;带单位取值10min,表示session_timeout为10min。取值如果要带单位,必须为s、min、h、d。 设置建议:参数值设置越小越安全,但用户使用越不便,依据业务安全诉求设定。 设置不当的风险与影响:设置过小可能造成业务连接池中长连接失效,进而导致业务失败。 GaussDB gsql客户端中有自动重连机制,所以针对初始化用户本地连接,超时后gsql表现的现象为断开后重连。
  • authentication_timeout 参数说明:完成客户端认证的最长时间。如果一个客户端没有在这段时间里完成与服务器端的认证,则服务器自动中断与客户端的连接,这样就避免了出问题的客户端无限制地占用连接数。 参数类型:整型 参数单位:s(秒) 取值范围:1 ~ 600 默认值:60 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。例如,不带单位取值600,表示authentication_timeout为600s;带单位取值10min,表示authentication_timeout为10min。取值如果要带单位,必须为s、min、h、d。 设置建议:推荐使用默认值。 设置不当的风险与影响:参数设置过小,可能会导致频繁遇到连接失败,影响用户使用。参数设置过大,会导致安全风险增加、资源浪费等问题。
  • ecpg预处理以及编译执行 准备嵌入式SQL-C源程序,以.pgc为后缀名,ecpg负责将其转换成可被编译器编译的C语言程序。 生成的C语言程序被编译器编译为可执行文件,运行该可执行文件实现客户端程序访问数据库。示例请参见常用示例章节。 ecpg预处理以及编译处理过程 预处理:ecpg -I $GAUSSHOME/include -o test.c test.pgc ecpg预处理的参数选项如下: ecpg [OPTION]... 其中OPTION参数选项如下: -o OUTFILE:预处理嵌入式SQL-C程序将结果写入OUTFILE,OUTFILE为C语言文件。 -I DIRECTORY:头文件的搜索路径。 -c:预处理嵌入式SQL-C程序自动生成C语言文件。 --version:查看ecpg当前版本。 -C MODE:指定预处理兼容模式,“A”为O兼容。 -r OPTION:指定运行时的行为。OPTION可以是:no_indicator、prepare、questionmarks或with_hold。 no_indicator:使用特殊值来表示空值。 prepare:在使用语句之前先prepare所有语句。 questionmarks:允许使用问号作为占位符。 with_hold:游标创建不带HOLD关键字,默认值为WITH HOLD(该功能需要ecpg和内核版本一致)。 编译:gcc -I $GAUSSHOME/include/ecpg -I $GAUSSHOME/include -I $GAUSSHOME/include/gaussdb/server/ -L $GAUSSHOME/lib -lecpg -lrt -lpq -lpgtypes -lpthread test_ecpg.c -o test_ecpg 执行:./test ecpg作为编译预处理工具,若在预处理或编译过程中出现找不到头文件或者函数实现的报错信息,可以根据需要指定头文件,或者链接动态库。 ecpg需要gcc、ld等编译预处理工具,建议gcc使用7.3.0版本。 使用ecpg开发应用程序所依赖的其他动态库和头文件,常见的位于$GAUSSHOME/include/libpq, $GAUSSHOME/include。 编译过程中常见的动态库依赖:-lpq、-lpq_ce、-lpthread。若开发过程中需要使用libpq通信库,则需要连接-lpq和-lpq_ce。若开发过程中需要使用多线程连接,则需要连接-lpthread。 父主题: 基于ecpg开发
  • GLOBAL_CKPT_STATUS GLOBAL_CKPT_STATUS视图用于显示数据库所有实例的检查点信息和各类日志刷页情况,如表1所示。多租场景下,non-PDB访问该视图时返回全部信息,PDB访问该视图时返回空列表。 表1 GLOBAL_CKPT_STATUS字段 名称 类型 描述 node_name text 实例名称。 ckpt_redo_point text 当前实例的检查点。 ckpt_clog_flush_num bigint 从启动到当前时间clog刷盘页面数。 ckpt_csnlog_flush_num bigint 从启动到当前时间csnlog刷盘页面数。 ckpt_multixact_flush_num bigint 从启动到当前时间multixact刷盘页面数。 ckpt_predicate_flush_num bigint 从启动到当前时间predicate刷盘页面数。 ckpt_twophase_flush_num bigint 从启动到当前时间twophase刷盘页面数。 父主题: Utility
  • 注意事项 如果创建存储过程时参数或返回值带有精度,不进行精度检测。 创建存储过程时,存储过程定义中对表对象的操作建议都显示指定模式,否则可能会导致存储过程执行异常。 创建存储过程时,仅对CREATE的存储过程或PACKAGE本身加写锁,仅对执行过程中编译、执行会对函数和函数依赖的PACKAGE均加读锁。 创建存储过程时,存储过程内部通过SET语句设置current_schema和search_path无效。执行完函数search_path和current_schema与执行函数前的search_path和current_schema保持一致。 SELECT、CALL调用函数时,必须要在出参位置提供实参进行调用,实参不会发生作用。 存储过程指定package属性时支持重载。 不能创建仅形参名字不同(存储过程名和参数列表类型都一样)的重载存储过程。 重载的存储过程在调用时变量需要明确具体的类型。 不能创建与函数拥有相同名称和参数列表的存储过程。 不支持仅默认值不同的存储过程重载。 存储过程仅in、out、inout这三种类型不同的参数,打开guc参数behavior_compat_options='proc_outparam_override'后,不允许重载。关闭该参数后,可以重载。 A兼容模式的数据库,建立A风格的函数;PG兼容的库,建立PG风格的函数。不建议混合创建。 函数如果支持重载,需要添加PACKAGE关键字。 在存储过程内部使用未声明的变量,存储过程被调用时会报错。 在创建procedure时,不能在avg函数外面嵌套其他agg函数,或者其他系统函数。 存储过程中不支持需要return集合的操作。 在存储过程内部调用其它无参数的存储过程时,可以省略括号,直接使用存储过程名进行调用。 在存储过程内部调用其他有出参的函数,如果在赋值表达式中调用时,需要打开guc参数 set behavior_compat_options = 'proc_outparam_override' ,并提前定义与出参类型相同的变量,然后将变量作为出参调用带有出参的其他函数,出参才能生效。否则,被调函数的出参会被忽略。 在表达式中使用out参数作为出参时,如下情况不会生效,例如:使用execute immediate sqlv using func语法执行函数、使用select func into语法执行函数、使用insert、update等DML语句执行以及带out出参的函数作为入参时,fun(func(out b),a),out出参b未生效等。 存储过程支持参数注释的查看与导出、导入。 存储过程支持介于IS/AS与plsql_body之间的注释的查看与导出、导入。 存储过程默认为SECURITY INVOKER权限,如果想将默认行为改为SECURITY DEFINER权限,需要设置guc参数behavior_compat_options='plsql_security_definer'。 被授予CREATE ANY FUNCTION权限的用户,可以在用户模式下创建/替换存储过程。 out/inout参数必须传入变量,不能传入常量。 集中式环境下,想要调用in参数相同,out参数不同的存储过程,需要设置guc参数behavior_compat_options='proc_outparam_override',并且打开参数后,无论使用select还是call调用存储过程,都必须加上out参数。打开参数后,不支持使用perform调用存储过程或函数。 存储过程创建时依赖未定义对象,如参数enable_force_create_obj打开,创建可执行,通过WARNING提示;如参数未打开,存储过程创建不可执行。 当打开三权分立时,对于定义者权限的存储过程,只能由本用户自己重建。 如果将定义者权限的存储过程创建到其他用户Schema下,则会以其他用户的权限执行该存储过程,有越权风险,请谨慎使用。 在存储过程内部函数复杂调用,如:func(x).a,函数调用返回复合类型,支持跨schema调用,不支持通过database.schema.package.func(x).b的方式调用。 调用带out出参的存储过程,设置GUC参数set behavior_compat_options = 'proc_outparam_transfer_length'后可以传递参数长度。规格限制如下: 支持的基本类型包括:CHAR(n)、CHARACTER(n)、NCHAR(n)、VARCHAR(n)、VARYING(n)、VARCHAR2(n)、NVARCHAR2(n)。 out出参不生效的情况下(比如perform)不需要传递长度。 不支持精度传递的基本类型包括:NUMERIC、DECIMAL、NUMBER、FLOAT、DEC、INTEGER、TIME、TIMESTAMP、INTERVAL、TIME WITH TIME ZONE、TIMESTAMP WITH TIME ZONE、TIME WITHOUT TIME ZONE、TIMESTAMP WITHOUT TIME ZONE。 无论GUC参数set behavior_compat_options是否设置为proc_outparam_override都支持传递参数长度。 要传递集合类型的元素长度和被集合类型嵌套的数组类型的元素长度需要在GUC参数behavior_compat_options里同时开启tableof_elem_constraints选项。 函数中存在通过GUC参数控制特性的语法、函数等,如果在会话内更改相关GUC参数,修改参数后,调用函数可能会维持修改前的行为,请谨慎变更GUC参数。 仅初始用户可以对初始用户的存储过程进行REPLACE操作。
  • 参数说明 OR REPLACE 当存在同名的存储过程时,替换原来的定义。 procedure_name 创建的存储过程名称,可以带有模式名。 取值范围:字符串,要符合标识符命名规范。 创建和系统函数重名的函数时,调用时需要指定函数的schema。 argmode 参数的模式。 VARIADIC用于声明数组类型的参数。 取值范围:IN,OUT,INOUT或VARIADIC。缺省值是IN。只有OUT模式的参数能跟在VARIADIC参数之后。 argname 参数的名称。 取值范围:字符串,要符合标识符命名规范。 argtype 参数的数据类型。可以使用%TYPE或%ROWTYPE间接引用变量或表的类型,详细可参考存储过程章节定义变量。 取值范围:可用的数据类型。 PACKAGE外PROCEDURE argtype中%TYPE不支持引用PACKAGE变量的类型。 expression 参数的默认表达式。 在参数a_format_version值为10c和a_format_dev_version值为s2的情况下,参数为INOUT模式时不支持默认表达式。 推荐使用方式:将所有默认值参数定义在所有非默认值参数后。 调用带有默认参数的函数时,入参从左往右排入函数,如果有非默认参数的入参缺失则报错。 打开 proc_uncheck_default_param 参数,调用带有默认参数的函数时,入参从左往右排入函数,默认参数的入参允许缺省,如果有非默认参数的入参缺失,则会用错位的默认值填充该参数。 在参数a_format_version值为10c、a_format_dev_version值为s1和关闭proc_outparam_override,函数参数同时包括out出参和default时,默认值不可缺省。 configuration_parameter value 把指定的配置参数设置为给定的值。如果value是DEFAULT,则在新的会话中使用系统的缺省设置。OFF关闭设置。 取值范围:字符串 DEFAULT OFF 指定默认值。 from current 取当前会话中的值设置为configuration_parameter的值。 IMMUTABLE、STABLE等 行为约束可选项。各参数的功能与CREATE FUNCTION类似,详细请参见CREATE FUNCTION。 plsql_body PL/SQL存储过程体。 创建一个存储过程时,plsql_body支持以“END;”或“END procedure_name;”两种形式结尾。 以END procedure_name;结尾时遵循以下约束: 仅A兼容模式(数据库级别)下支持使用。 仅支持A风格创建语法。 仅支持END后设置存储过程名称的场景。 存储过程END后名称与实际名称不匹配报错;PACKAGE内存储过程,END后名称与实际名称不匹配报错。 以上两种报错场景,即使参数enable_force_create_obj=on打开,仍会创建失败并提示报错信息。 嵌套子程序END后名称与实际名称不匹配报错场景,如参数enable_force_create_obj=on打开,创建成功,通过WARNING提示报错信息;如参数未打开,存储过程或package创建失败并提示报错信息。 创建的存储过程在DBE_PLDEVELOPER.gs_source、my_source、db_source、adm_source视图中显示与存储过程创建时定义相同(创建时“END+名称”则显示“END+名称”);在pg_proc视图以及\sf查看时,最外层END后在任何情况下都不跟名称,内部则按照创建时定义(创建时“END+名称”则显示“END+名称”)显示。 gs_dump生成的sql文件,存储过程无法保留最外层END后名称。 以IF/LOOP命名存储过程或嵌套子程序时,不支持以END IF/LOOP结束存储过程。 当在存储过程体中进行创建用户、修改密码或加解密等涉及密码或密钥相关操作时,系统表及日志中会记录密码或密钥的明文信息。为防止敏感信息泄露,不建议用户在存储过程体中进行涉及密码或密钥等敏感信息的相关操作。 argname和argmode的顺序没有严格要求,推荐按照argname、argmode、argtype的顺序使用。
  • 语法格式 CREATE [ OR REPLACE ] PROCEDURE procedure_name [ ( {[ argname ] [ argmode ] argtype [ { DEFAULT | := | = } expression ]}[,...]) ] [ { IMMUTABLE | STABLE | VOLATILE } | { SHIPPABLE | NOT SHIPPABLE } | {PACKAGE} | [ NOT ] LEAKPROOF | { CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT } | {[ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER | AUTHID DEFINER | AUTHID CURRENT_USER} | COST execution_cost | SET configuration_parameter { [ TO | = ] value | FROM CURRENT } ][ ... ] { IS | AS } plsql_body /
  • GS_ENCRYPTED_COLUMNS GS_ENCRYPTED_COLUMNS系统表记录密态等值特性中表的加密列相关信息,每条记录对应一条加密列信息。 表1 GS_ENCRYPTED_COLUMNS字段 名称 类型 描述 oid oid 行标识符(隐含字段)。 rel_id oid 表的OID。 column_name name 加密列的名称。 column_key_id oid 外键,列加密密钥的OID。 encryption_type tinyint 加密类型,取值为2(DETERMINISTIC)或者1(RANDOMIZED)。 data_type_original_oid oid 加密列的原始数据类型id,参考系统表PG_TYPE中的oid。 data_type_original_mod integer 加密列的原始数据类型修饰符,参考系统表PG_ATTRIBUTE中的atttypmod。其值对那些不需要的类型data_type_original_mod通常为-1。 create_date timestamp without time zone 创建加密列的时间。 父主题: 密态等值查询
  • 执行SQL语句 为了帮助用户实现与数据库的交互,ODBC提供执行SQL语句的相关API如表1所示。 表1 相关API说明 功能 API 设置语句属性 SQLSetStmtAttr 为执行SQL语句做准备 SQLPrepare 执行一条准备好的SQL语句 SQLExecute 绑定SQL语句的参数标志和缓冲区 SQLBindParameter 直接执行SQL语句 SQLExecDirect ODBC为应用程序与数据库的中心层,负责把应用程序发出的SQL指令传到数据库当中,自身并不解析SQL语法。故在应用程序中写入带有保密信息的SQL语句时(如明文密码),保密信息会被暴露在驱动日志中。 数据库中收到的一次执行请求(不在事务块中),如果含有多条语句,将会被打包成一个事务,如果其中有一个语句失败,那么整个请求都将会被回滚。 示例如下(完整示例请参考获取和处理数据库中的数据): // 设置语句属性。 SQLSetStmtAttr(V_OD_hstmt, SQL_ATTR_QUERY_TIMEOUT, (SQLPOINTER *)3, 0); // 申请语句句柄。 SQLAllocHandle(SQL_HANDLE_STMT, V_OD_hdbc, &V_OD_hstmt); // 直接执行SQL语句。 SQLExecDirect(V_OD_hstmt, "drop table IF EXISTS customer_t1", SQL_NTS); SQLExecDirect(V_OD_hstmt, "CREATE TABLE customer_t1(c_customer_sk INTEGER, c_customer_name VARCHAR(32));", SQL_NTS); SQLExecDirect(V_OD_hstmt, "insert into customer_t1 values(25, 'li')", SQL_NTS); // 准备执行。 SQLPrepare(V_OD_hstmt, "insert into customer_t1 values(?)", SQL_NTS); // 绑定参数。 SQLBindParameter(V_OD_hstmt,1, SQL_PA RAM _INPUT, SQL_C_SLONG, SQL_INTEGER, 0, 0, &value, 0, NULL); // 执行准备好的语句。 SQLExecute(V_OD_hstmt); SQLExecDirect(V_OD_hstmt, "select c_customer_sk from customer_t1", SQL_NTS); 父主题: 开发步骤
  • MY_TAB_MODIFICATIONS MY_TAB_MODIFICATIONS视图记录自上次在表上收集统计信息以来当前用户拥有的表的修改信息的统计数据。该视图目前只显示执行了INSERT、DELETE和UPDATE操作的表。所有用户都可以访问该视图。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 MY_TAB_MODIFICATIONS字段 名称 类型 描述 table_name character varying(128) 表的名称。 partition_name character varying(128) 分区的名称。 subpartition_name character varying(128) 子分区的名称。 inserts numeric 自上次收集统计信息以来的大致插入次数。 updates numeric 自上次收集统计信息以来的大致更新次数。 deletes numeric 自上次收集统计信息以来的大致删除次数。 timestamp timestamp(0) without time zone 上次修改表的时间。 暂不支持分区表的修改时间,值为NULL。 truncated character varying(3) 暂不支持,值为NULL。 drop_segments numeric 暂不支持,值为NULL。 schema_name character varying(128) 表所属模式名。 父主题: 其他系统视图
  • system_view_version 参数说明:控制系统视图的版本。具体详见表1 系统视图版本参数说明。所有版本向下兼容,例如system_view_version=3时同时满足版本2与版本1的所有特性。该参数可在PDB级别设置。 参数类型:整型 参数单位:无 取值范围:0 ~ 9999 默认值:0。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:升级场景不做修改,安装场景配置为表1 系统视图版本参数说明中的最大版本。 设置不当的风险与影响:系统视图部分字段行为存在变更,参考表1 系统视图版本参数说明。 表1 系统视图版本参数说明 取值 说明 0 默认行为。 1 当GaussDB中不存在已准备好的事务时,V$GLOBAL_TRANSACTION视图的PREPARECOUNT字段由NULL变为0。
  • default_with_oids 参数说明:在没有声明WITH OIDS和WITHOUT OIDS的情况下,这个选项控制在新创建的表中CREATE TABLE和CREATE TABLE AS是否包含一个OID字段。它还决定SELECT INTO创建的表里面是否包含OID 。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示在新创建的表中,CREATE TABLE和CREATE TABLE AS包含一个OID字段。 off:表示在新创建的表中,CREATE TABLE和CREATE TABLE AS不包含一个OID字段。 默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:不推荐在用户表中使用OID,故默认设置为off。需要带有OID字段的表应该在创建时声明WITH OIDS 。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • enable_recordtype_check_strict 参数说明:控制是否要对PL/SQL中的record类型进行严格性校验,详见说明部分。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示会在编译procedure、function、package时,校验创建的record类型中不支持的功能,以及提供procedure、function里创建的record类型not null功能。 off:表示向下兼容旧式模式,不会对record类型进行校验。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置为off时,部分指定了not null约束和定义了列默认值的record变量在赋值时功能不生效。 若从老版本升级,该参数会默认设置为off。 打开该参数后有以下三点行为变更: 存储过程、函数内部创建的record类型,列约束not null功能生效。 package里创建的record类型,如果有一列指定了not null或default,则会编译报错。通过访问package.rec类型来创建的变量不支持not null和default功能。 其他类型嵌套一个record类型,如果有一列指定了not null或default,则会编译报错。创建嵌套record类型的变量,该变量的record元素不支持not null和default功能。
  • backslash_quote 参数说明:控制字符串文本中的单引号是否能够用\'表示。该参数可在PDB级别设置。 在字符串文本符合SQL标准的情况下,\没有任何其他含义。这个参数影响的是如何处理不符合标准的字符串文本,包括明确的字符串转义语法是(E'...')。 参数类型:枚举类型 参数单位:无 取值范围: on:表示一直允许用\'表示。 off:表示不能用\'表示。 safe_encoding:表示当客户端字符集编码在多字节字符末尾不包含\的ASCII值时,允许使用。 默认值:safe_encoding。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • lo_compat_privileges 参数说明:控制是否启动对大对象权限检查的向后兼容模式。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示当读取或修改大对象时,禁用权限检查。 off:表示启用大对象的权限检查。 默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • sql_inheritance 参数说明:用来控制继承表的访问策略,该参数是为了兼容旧版本而设置的。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示可以访问子表。 off:表示不可以访问子表,即默认使用ONLY关键字。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • synchronize_seqscans 参数说明:控制并行执行的序列扫描是否相互同步。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示扫描可能从表的中间开始,然后选择“环绕”方式来覆盖所有的行,目的是与已在执行的扫描保持同步。这种同步机制可以提高并行序列扫描的性能,但可能导致没有ORDER BY的查询返回乱序结果 off:禁用序列扫描的同步行为,每个扫描都从表的起始位置开始。可以确保没有ORDER BY的查询返回与物理存储顺序一致的结果,但并行扫描效率可能会降低。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • enable_beta_features 参数说明:控制是否开启某些非正式发布的特性,仅用于POC验证。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启这些功能受限的特性,保持前向兼容。 off:表示禁止使用这些特性。 默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:这些特性属于延伸特性,建议用户谨慎开启,在某些功能场景下可能存在问题。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • escape_string_warning 参数说明:控制是否对普通字符串中使用的反斜杠转义发出警告。该参数可在PDB级别设置。 如果需要使用反斜杠作为转义,可以调整为使用转义字符串语法(E'...')来做转义,因为在SQL标准中,普通字符串的默认行为将反斜杠作为一个普通字符。 这个变量可以帮助定位需要改变的代码。 使用E转义会导致部分场景下日志记录不全。 参数类型:布尔型 参数单位:无 取值范围: on:对普通字符串中使用的反斜杠转义发出警告。 off:不对普通字符串中使用的反斜杠转义发出警告。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • array_nulls 参数说明:控制数组输入解析器是否将没有用引用的NULL识别为数组的一个NULL元素。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示允许向数组中输入空元素。 off:表示向下兼容旧模式。仍然能够创建包含NULL值的数组。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • standard_conforming_strings 参数说明:控制普通字符串文本('...')中是否按照SQL标准把反斜杠当作普通文本。应用程序通过检查这个参数可以判断字符串文本的处理方式。建议明确使用转义字符串语法(E'...')来转义字符。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示按照SQL标准把反斜杠当作普通文本。 off:表示反斜杠在字符串字面值中被解释为转义字符。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • PG_EXT_STATS PG_EXT_STATS视图可用来访问存储在PG_STATISTIC_EXT表里面的扩展统计信息。扩展统计信息目前包括多列统计信息。 表1 PG_EXT_STATS字段 名称 类型 引用 描述 schemaname name PG_NAMESPACE.nspname 表的模式名。 tablename name PG_CLASS.relname 表名。 attname int2vector PG_STATISTIC_EXT.stakey 统计信息扩展的多列信息。 inherited boolean - 暂不支持继承表,该字段为false。 null_frac real - 记录中字段组合为空的百分比。 avg_width integer - 字段组合记录以字节记的平均宽度。 n_distinct real - 如果大于零,表示字段组合中独立数值的估计数目。 如果小于零,表示独立数值的数目除以行数后乘-1得到的负数。比如,-1表示一个字段组合中独立数值的个数和行数相同。 用负数形式是因为ANALYZE认为独立数值的数目是随着表增长而增长; 正数的形式用于在字段看上去好像有固定的可能值数目的情况下。 如果等于零,表示独立数值的数目未知。 n_dndistinct real - 标识dn1上字段组合中非NULL的独立数值的数目。 如果大于零,表示独立数值的实际数目。 如果小于零,表示独立数值的数目除以行数后乘-1得到的负数。比如,一个字段组合的数值平均出现概率为两次,则可以表示为n_dndistinct=-0.5。 如果等于零,表示独立数值的数目未知。 most_common_vals anyarray - 一个字段组合里最常用数值的列表。如果该字段组合不存在最常用数值,则为NULL。本列保存的多列常用数值均不为NULL。 most_common_freqs real[] - 一个记录字段组合里最常用数值的出现频率的列表,频率由每个数值出现的次数除以行数得到。如果most_common_vals取值为NULL,则该字段取值也为NULL。 most_common_vals_null anyarray - 一个字段组合里最常用数值的列表。如果该字段组合不存在最常用数值,则为NULL。本列保存的多列常用数值中至少有一个值为NULL。 most_common_freqs_null real[] - 一个记录字段组合里最常用数值的出现频率的列表,频率由每个数值出现的次数除以行数得到。如果most_common_vals_null取值为NULL,则该字段取值也为NULL。 histogram_bounds anyarray - 直方图的边界值列表。 partitionname name PG_PARTITION.relname 分区表的一级分区名。对于非分区表,该字段为空 subpartitionname name PG_PARTITION.relname 分区表的二级分区名。对于非分区表或一级分区表,该字段为空。 父主题: 其他系统视图
  • PG_TS_DICT PG_TS_DICT系统表包含定义文本搜索字典的记录。字典取决于文本搜索模板,该模板声明所有需要的实现函数;字典本身提供模板支持的用户可设置的参数的值。 这种分工允许字典通过非权限用户创建。参数由文本字符串dictinitoption指定,参数的格式和意义取决于模板。 表1 PG_TS_DICT字段 名称 类型 引用 描述 oid oid - 行标识符(隐含属性,必须明确选择)。 dictname name - 文本搜索字典名。 dictnamespace oid PG_NAMESPACE.oid 包含这个字典的名称空间的OID。 dictowner oid PG_AUTHID.oid 字典的所有者。 dicttemplate oid PG_TS_TEMPLATE.oid 这个字典的文本搜索模板的OID。 dictinitoption text - 该模板的初始化选项字符串。 父主题: 其他系统表
  • GS_SHARED_MEMORY_DETAIL 查询当前节点所有已产生的共享内存上下文的使用信息。多租场景下,non-PDB访问该视图时返回全部信息,PDB访问该视图时返回空列表。 表1 GS_SHARED_MEMORY_DETAIL字段 名称 类型 描述 contextname text 内存上下文的名称。 level smallint 内存上下文的级别。 parent text 上级内存上下文。 totalsize bigint 共享内存总大小(单位:字节)。 freesize bigint 共享内存剩余大小(单位:字节)。 usedsize bigint 共享内存使用大小(单位:字节)。 父主题: 其他系统视图
共100000条
提示

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