华为云用户手册

  • 应用示例 查看分区表的分区信息: 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 CREATE TABLE web_returns_p1 ( wr_returned_date_sk integer, wr_returned_time_sk integer, wr_item_sk integer NOT NULL, wr_refunded_customer_sk integer ) WITH (orientation = column) DISTRIBUTE BY HASH (wr_item_sk) PARTITION BY RANGE (wr_returned_date_sk) ( PARTITION p2016 VALUES LESS THAN(20161231), PARTITION p2017 VALUES LESS THAN(20171231), PARTITION p2018 VALUES LESS THAN(20181231), PARTITION p2019 VALUES LESS THAN(20191231), PARTITION p2020 VALUES LESS THAN(maxvalue) ); SELECT * FROM dba_tab_partitions WHERE table_name='web_returns_p1'; table_owner | schema | table_name | partition_name | high_value | pretty_high_value | tablespace_name -------------+--------+----------------+----------------+------------+-------------------+-------------------- dbadmin | public | web_returns_p1 | p2016 | 20161231 | 20161231 | DEFAULT TABLESPACE dbadmin | public | web_returns_p1 | p2017 | 20171231 | 20171231 | DEFAULT TABLESPACE dbadmin | public | web_returns_p1 | p2018 | 20181231 | 20181231 | DEFAULT TABLESPACE dbadmin | public | web_returns_p1 | p2019 | 20191231 | 20191231 | DEFAULT TABLESPACE dbadmin | public | web_returns_p1 | p2020 | MAXVALUE | MAXVALUE | DEFAULT TABLESPACE (5 rows)
  • 性能视图快照系统表 设置enable_wdr_snapshot为on后,后台快照线程会创建并维护以“SNAP_+视图名称”方式命名的系统表,用以记录各性能视图的快照结果。需要有系统管理员权限才可以访问下列系统表。 SNAP_PGXC_OS_RUN_INFO SNAP_PGXC_WAIT_EVENTS SNAP_PGXC_INSTR_UNIQUE_SQL SNAP_PGXC_STAT_BAD_BLOCK SNAP_PGXC_STAT_BGWRITER SNAP_PGXC_STAT_REPLICATION SNAP_PGXC_REPLICATION_SLOTS SNAP_PGXC_SETTINGS SNAP_PGXC_INSTANCE_TIME SNAP_GLOBAL_WORKLOAD_TRANSACTION SNAP_PGXC_WORKLOAD_SQL_COUNT SNAP_PGXC_STAT_DATABASE SNAP_GLOBAL_STAT_DATABASE SNAP_PGXC_REDO_STAT SNAP_GLOBAL_REDO_STAT SNAP_PGXC_REL_IOSTAT SNAP_GLOBAL_REL_IOSTAT SNAP_PGXC_TOTAL_MEMORY_DETAIL SNAP_PGXC_NODE_STAT_RESET_TIME SNAP_PGXC_SQL_COUNT SNAP_GLOBAL_TABLE_STAT SNAP_GLOBAL_TABLE_CHANGE_STAT SNAP_GLOBAL_COLUMN_TABLE_IO_STAT SNAP_GLOBAL_ROW_TABLE_IO_STAT 此类系统表除增加snapshot_id字段(bigint类型)外,其余的字段定义与对应视图相同,且各表的分布键均为snapshot_id。 例如,SNAP_PGXC_OS_RUN_INFO,用于存储PGXC_OS_RUN_INFO视图的快照,其字段新增了snapshot_id,其余字段含义均与PGXC_OS_RUN_INFO视图相同。 以上系统表的schema都是dbms_om。 禁止从外部修改或删除以上系统表,否则可能引起视图快照相关功能异常。 父主题: 系统表
  • 应用示例 查询指定表的索引信息。 1 2 3 4 5 SELECT * FROM pg_indexes WHERE tablename = 'mytable'; schemaname | tablename | indexname | tablespace | indexdef ------------+-----------+----------------+------------+------------------------------------------------------------------------------- public | mytable | idx_mytable_id | | CREATE INDEX idx_mytable_id ON mytable USING btree (id) TABLESPACE pg_default (1 row) 查询当前数据库指定模式下所有表的索引信息。 1 2 3 4 5 6 7 8 9 10 SELECT tablename, indexname, indexdef FROM pg_indexes WHERE schemaname = 'public' ORDER BY tablename,indexname; tablename | indexname | indexdef -----------+--------------------+----------------------------------------------------------------------------------------------------- books | books_pkey | CREATE UNIQUE INDEX books_pkey ON books USING btree (id) TABLESPACE pg_default books | idx_books_tags_gin | CREATE INDEX idx_books_tags_gin ON books USING gin (tags) TABLESPACE pg_default customer | c_custkey_key | CREATE UNIQUE INDEX c_custkey_key ON customer USING btree (c_custkey, c_name) TABLESPACE pg_default mytable | idx_mytable_id | CREATE INDEX idx_mytable_id ON mytable USING btree (id) TABLESPACE pg_default test1 | idx_test_id | CREATE INDEX idx_test_id ON test1 USING btree (id) TABLESPACE pg_default v0 | v0_pkey | CREATE UNIQUE INDEX v0_pkey ON v0 USING btree (c) TABLESPACE pg_default (6 rows)
  • PG_STATIO_SYS_INDEXES PG_STATIO_SYS_INDEXES视图显示命名空间中所有系统表索引的IO状态信息。 表1 PG_STATIO_SYS_INDEXES字段 名称 类型 描述 relid oid 此索引表的OID。 indexrelid oid 索引的OID。 schemaname name 索引的模式名。 relname name 索引的表名。 indexrelname name 索引名。 idx_blks_read bigint 从索引中读取的磁盘块数。 idx_blks_hit bigint 索引缓冲区命中数量。 父主题: 系统视图
  • PG_GET_INVALID_BACKENDS PG_GET_INVALID_BACKENDS视图提供显示CN上连接到当前DN备机的后端线程信息。 表1 PG_GET_INVALID_BACKENDS字段 名称 类型 描述 pid bigint 线程ID。 node_name text 后端线程中连接的节点信息。 dbname name 当前连接的数据库。 backend_start timestamp with time zone 后端线程启动的时间。 query text 后端线程正在执行的查询语句。 父主题: 系统视图
  • 应用示例 查询名为serial1的数据库对象sequence和哪个表有依赖关系。 先通过系统表PG_CLASS查询序列名为serial1的oid。 1 2 3 4 5 SELECT oid FROM pg_class WHERE relname ='serial1'; oid ------- 17815 (1 row) 使用系统表PG_DEPEND根据所查询的序列serial1的oid获取依赖该序列的对象。 1 2 3 4 5 6 SELECT * FROM pg_depend WHERE objid ='17815'; classid | objid | objsubid | refclassid | refobjid | refobjsubid | deptype ---------+-------+----------+------------+----------+-------------+--------- 1259 | 17815 | 0 | 2615 | 2200 | 0 | n 1259 | 17815 | 0 | 1259 | 17812 | 1 | a (2 rows) 根据字段refobjid获取依赖该序列serial1的表的OID,并查询到表名。其结果表示,序列serial1依赖于表customer_address。 1 2 3 4 5 SELECT relname FROM pg_class where oid='17812'; relname ------------------ customer_address (1 row)
  • profile_logging_module 参数说明:用于设置记录性能日志的类型,使用该参数时需确保plog_merge_age参数值非0。该参数属于会话级参数,不建议通过gs_guc工具来设置。仅8.1.3及以上集群版本支持。 参数类型:USERSET 取值范围:字符串 默认值:默认打开OBS、HADOOP、REMOTE_DATANODE,关闭MD。可由SHOW profile_logging_module查看。 设置方法:首先,可以通过SHOW profile_logging_module来查看哪些模块是支持可控制的。例如,查询输出结果为: 1 2 3 4 show profile_logging_module; profile_logging_module -------------------------------------------- ALL,on(OBS,HADOOP,REMOTE_DATANODE),off(MD)(1 row) 打开MD性能日志,并查看设置结果。其中ALL标识是相当于一个快捷操作,即对所有模块的日志可输出进行开启或关闭。 1 2 3 4 5 6 7 set profile_logging_module='on(md)'; SET show profile_logging_module; profile_logging_module --------------------------------------------- ALL,on(MD,OBS,HADOOP,REMOTE_DATANODE),off()(1 row)
  • client_min_messages 参数说明:控制发送到客户端的消息级别。每个级别都包含排在它后面的所有级别中的信息。级别越低,发送给客户端的消息就越少。 参数类型:USERSET 当client_min_messages和log_min_messages取相同值时,其值所代表的级别不同。 取值范围:枚举类型,有效值有debug5、debug4、debug3、debug2、debug1、info、log、notice、warning、error。参数的详细信息请参见表1。 默认值:notice
  • log_min_messages 参数说明:控制写到服务器日志文件中的消息级别。每个级别都包含排在它后面的所有级别中的信息。级别越低,服务器运行日志中记录的消息就越少。 参数类型:SUSET 当client_min_messages和log_min_messages取相同值log时所代表的消息级别不同。 取值范围:枚举类型,有效值有debug5、debug4、debug3、debug2、debug1、info、log、notice、warning、error、fatal、panic。参数的详细信息请参见表1。 默认值:warning
  • backtrace_min_messages 参数说明:控制当产生该设置参数级别相等或更高级别的信息时,会打印函数的堆栈信息到服务器日志文件中。 参数类型:SUSET 该参数作为客户现场问题定位手段使用,且由于频繁的打印函数栈会对系统的开销及稳定性有一定的影响,因此如果需要进行问题定位时,建议避免将backtrace_min_messages的值设置为fatal及panic以外的级别。 取值范围:枚举类型 有效值有debug5、debug4、debug3、debug2、debug1、info、log、notice、warning、error、fatal、panic。参数的详细信息请参见表1。 默认值:panic
  • log_min_error_statement 参数说明:控制在服务器日志中记录错误的SQL语句。 参数类型:SUSET 取值范围:枚举类型,有效值有debug5、debug4、debug3、debug2、debug1、info、log、notice、warning、error、fatal、panic。参数的详细信息请参见表1。 设置为error ,表示导致错误、日志消息、致命错误、panic的语句都将被记录。 设置为panic,表示关闭此特性。 默认值:error
  • log_min_duration_statement 参数说明:当某条语句的持续时间大于或者等于特定的毫秒数时,log_min_duration_statement参数用于控制记录每条完成语句的持续时间。 设置log_min_duration_statement可以很方便地跟踪需要优化的查询语句。对于使用扩展查询协议的客户端,语法分析、绑定、执行每一步所花时间被独立记录。 参数类型:SUSET 当此选项与log_statement同时使用时,已经被log_statement记录的语句文本不会被重复记录。在没有使用syslog情况下,推荐使用log_line_prefix记录PID或会话ID,方便将当前语句消息连接到最后的持续时间消息。 取值范围:整型,-1 ~ INT_MAX,单位为毫秒。 设置为250,所有运行时间不短于250ms的SQL语句都会被记录。 设置为0,输出所有语句的持续时间。 设置为-1,关闭此功能。 默认值:30min
  • PG_OS_THREADS PG_OS_THREADS视图提供当前节点下所有线程的状态信息。 表1 PG_OS_THREADS字段 名称 类型 描述 node_name text 当前节点名称。 pid bigint 当前节点进程中正在运行的线程号。 lwpid integer 与pid对应的轻量级线程号。 thread_name text 与pid对应的线程名称。 creation_time timestamp with time zone 与pid对应的线程创建的时间。 父主题: 系统视图
  • 参数 表1 SQLFreeHandle参数 关键字 参数说明 HandleType SQLFreeHandle要释放的句柄类型。必须为下列值之一: SQL_HANDLE_ENV SQL_HANDLE_DBC SQL_HANDLE_STMT SQL_HANDLE_DESC 如果HandleType不是这些值之一,SQLFreeHandle返回SQL_INVALID_HANDLE。 Handle 要释放的句柄。
  • PG_REDACTION_COLUMN PG_REDACTION_COLUMN系统表存储脱敏列的信息。 表1 PG_REDACTION_COLUMN字段 名称 类型 描述 object_oid oid 脱敏对象OID。 column_attrno smallint 脱敏列attrno。 function_type integer 脱敏类型。 说明: 保留字段,仅为向前兼容低版本的脱敏列信息,可取值为0(NONE)、1(FULL)。 function_parameters text 脱敏类型为partial类型时的参数。(保留字段,无实际意义) regexp_pattern text 脱敏类型为regexp时,格式化字符串。(保留字段,无实际意义) regexp_replace_string text 脱敏类型为regexp时,替换串。(保留字段,无实际意义) regexp_position integer 脱敏类型为regexp时,起始替换位置。(保留字段,无实际意义) regexp_occurrence integer 脱敏类型为regexp时,替换次数。(保留字段,无实际意义) regexp_match_parameter text 脱敏类型为regexp时,正则控制参数。(保留字段,无实际意义) column_description text 脱敏列描述信息。 function_expr pg_node_tree 脱敏函数的内部表现形式。 inherited bool 说明脱敏列是否是“继承”自其他脱敏列。 父主题: 系统表
  • PG_REPLICATION_SLOTS PG_REPLICATION_SLOTS视图查看复制节点的信息。 表1 PG_REPLICATION_SLOTS字段 名称 类型 描述 slot_name text 复制节点的名称。 plugin name 逻辑复制槽对应的输出插件名。 slot_type text 复制节点的类型。 datoid oid 复制节点的数据库OID。 database name 复制节点的数据库名称。 active boolean 复制节点是否为激活状态。 xmin xid 复制节点事务标识。 catalog_xmin text 逻辑复制槽对应的最早解码事务标识。 restart_lsn text 复制节点的Xlog文件信息。 dummy_standby boolean 复制节点是否为假备。 父主题: 系统视图
  • 参数 表1 SQLSetConnectAttr参数 关键字 参数说明 StatementtHandle 连接句柄。 Attribute 设置属性。 ValuePtr 指向对应Attribute的值。依赖于Attribute的值,ValuePtr是32位无符号整型值或指向以空结束的字符串。注意,如果ValuePtr参数是驱动程序指定值。ValuePtr可能是有符号的整数。 StringLength 如果ValuePtr指向字符串或二进制缓冲区,这个参数是*ValuePtr长度,如果ValuePtr指向整型,忽略StringLength。
  • 原型 1 2 3 4 SQLRETURN SQLSetConnectAttr(SQLHDBC ConnectionHandle SQLINTEGER Attribute, SQLPOINTER ValuePtr, SQLINTEGER StringLength);
  • 自定义外部函数(pgSQL/Java)使用 【关注】Java UDF可以实现一些java逻辑计算,禁止在Java UDF中封装业务。 【关注】禁止在Java函数中使用任何方式连接数据库,包括但不限于JDBC。 【关注】只能选择下表中的数据类型,不支持自定义类型、复杂数据类型(Java Array类及派生类)等: 【关注】不支持UDAF(用户定义聚合函数)、UDTF(用户自定义表生成函数)。 表1 PL/Java默认数据类型映射关系 GaussDB(DWS) Java BOOLEAN boolean "char" byte bytea byte[] SMALLINT short INTEGER int BIGINT long FLOAT4 float FLOAT8 double CHAR java.lang.String VARCHAR java.lang.String TEXT java.lang.String name java.lang.String DATE java.sql.Timestamp TIME java.sql.Time (stored value treated as local time) TIMETZ java.sql.Time TIMESTAMP java.sql.Timestamp TIMESTAMPTZ java.sql.Timestamp 父主题: 开发设计建议
  • GLOBAL_WORKLOAD_SQL_ELAPSE_TIME GLOBAL_WORKLOAD_SQL_ELAPSE_TIME视图显示集群中所有Workload控制组内SQL语句执行的响应时间的统计信息,包括SELECT、UPDATE、INSERT、DELETE语句的最大、最小、平均、以及总响应时间,单位为微秒。 表1 GLOBAL_WORKLOAD_SQL_ELAPSE_TIME字段 名称 类型 描述 workload name Workload控制组名称。 total_select_elapse bigint SELECT总响应时间。 max_select_elapse bigint SELECT最大响应时间。 min_select_elapse bigint SELECT最小响应时间。 avg_select_elapse bigint SELECT平均响应时间。 total_update_elapse bigint UPDATE总响应时间。 max_update_elapse bigint UPDATE最大响应时间。 min_update_elapse bigint UPDATE最小响应时间。 avg_update_elapse bigint UPDATE平均响应时间。 total_insert_elapse bigint INSERT总响应时间。 max_insert_elapse bigint INSERT最大响应时间。 min_insert_elapse bigint INSERT最小响应时间。 avg_insert_elapse bigint INSERT平均响应时间。 total_delete_elapse bigint DELETE总响应时间。 max_delete_elapse bigint DELETE最大响应时间。 min_delete_elapse bigint DELETE最小响应时间。 avg_delete_elapse bigint DELETE平均响应时间。 父主题: 系统视图
  • 原型 1 2 3 4 5 6 7 8 9 10 SQLRETURN SQLBindParameter(SQLHSTMT StatementHandle, SQLUSMALLINT ParameterNumber, SQLSMALLINT InputOutputType, SQLSMALLINT ValuetType, SQLSMALLINT ParameterType, SQLULEN ColumnSize, SQLSMALLINT DecimalDigits, SQLPOINTER ParameterValuePtr, SQLLEN BufferLength, SQLLEN *StrLen_or_IndPtr);
  • 参数 表1 SQLBindParameter 关键词 参数说明 StatementHandle 语句句柄。 ParameterNumber 参数序号,起始为1,依次递增。 InputOutputType 输入输出参数类型。 ValueType 参数的C数据类型。 ParameterType 参数的SQL数据类型。 ColumnSize 列的大小或相应参数标记的表达式。 DecimalDigits 列的十进制数字或相应参数标记的表达式。 ParameterValuePtr 指向存储参数数据缓冲区的指针。 BufferLength ParameterValuePtr指向缓冲区的长度,以字节为单位。 StrLen_or_IndPtr 缓冲区的长度或指示器指针。若为空值,则未使用任何长度或指示器值。
  • 语法 RAISE有以下五种语法格式: 图1 raise_format::= 图2 raise_condition::= 图3 raise_sqlstate::= 图4 raise_option::= 图5 raise::= 参数说明: level选项用于指定错误级别,有DEBUG,LOG,INFO,NOTICE,WARNING以及EXCEPTION(默认值)。EXCEPTION抛出一个正常终止当前事务的异常,其他的仅产生不同异常级别的信息。特殊级别的错误信息是否报告到客户端、写到服务器日志由log_min_messages和client_min_messages这两个配置参数控制。 format:格式字符串,指定要报告的错误消息文本。格式字符串后可跟表达式,用于向消息文本中插入。在格式字符串中,%由format后面跟着的参数的值替换,%%用于打印出%。例如: --v_job_id 将替换字符串中的 %: RAISE NOTICE 'Calling cs_create_job(%)',v_job_id; option = expression:向错误报告中添加另外的信息。关键字option可以是MESSAGE、DETAIL、HINT以及ERRCODE,并且每一个expression可以是任意的字符串。 MESSAGE,指定错误消息文本,这个选项不能用于在USING前包含一个格式字符串的RAISE语句中。 DETAIL,说明错误的详细信息。 HINT,用于打印出提示信息。 ERRCODE,向报告中指定错误码(SQLSTATE)。可以使用条件名称或者直接用五位字符的SQLSTATE错误码。 condition_name:错误码对应的条件名。 sqlstate:错误码。 如果在RAISE EXCEPTION命令中既没有指定条件名也没有指定SQLSTATE,默认用RAISE EXCEPTION (P0001)。如果没有指定消息文本,默认用条件名或者SQLSTATE作为消息文本。 当由SQLSTATE指定了错误码,则不局限于已定义的错误码,可以选择任意包含五个数字或者大写的ASCII字母的错误码,而不是00000。建议避免使用以三个0结尾的错误码,因为这种错误码是类别码,会被整个种类捕获。 图5所示的语法不接任何参数。这种形式仅用于一个BEGIN块中的EXCEPTION语句,它使得错误重新被处理。
  • 示例 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 --创建存储过程proc_add。 CREATE OR REPLACE PROCEDURE proc_add ( param1 in INTEGER, param2 out INTEGER, param3 in INTEGER ) AS BEGIN param2:= param1 + param3; END; / DECLARE input1 INTEGER:=1; input2 INTEGER:=2; statement VARCHAR2(200); param2 INTEGER; BEGIN --声明调用语句 statement := 'call proc_add(:col_1, :col_2, :col_3)'; --执行语句 EXECUTE IMMEDIATE statement USING IN input1, OUT param2, IN input2; dbms_output.put_line('result is: '||to_char(param2)); END; / --删除存储过程 DROP PROCEDURE proc_add;
  • 语法 语法请参见图1。 图1 call_procedure::= using_clause子句的语法参见图2。 图2 using_clause-3 对以上语法格式的解释如下: CALL procedure_name,调用存储过程。 [:placeholder1,:placeholder2,…],存储过程参数占位符列表。占位符个数与参数个数相同。 USING [IN|OUT|IN OUT] bind_argument,用于指定存放传递给存储过程参数值的变量。bind_argument前的修饰符与对应参数的修饰符一致。
  • PG_PREPARED_XACTS PG_PREPARED_XACTS视图显示当前准备好进行两阶段提交的事务的信息。 表1 PG_PREPARED_XACTS字段 名称 类型 引用 描述 transaction xid - 预备事务的数字事务标识。 gid text - 赋予该事务的全局事务标识。 prepared timestamp with time zone - 事务准备好提交的时间。 owner name PG_AUTHID.rolname 执行该事务的用户名。 database name PG_DATABASE.datname 执行该事务所在的数据库名。 父主题: 系统视图
  • 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_ALL_CONTROL_GROUP_INFO GS_ALL_CONTROL_GROUP_INFO视图显示数据库内所有的控制组信息。 表1 GS_ALL_CONTROL_GROUP_INFO字段 名称 类型 描述 name text 控制组的名称。 type text 控制组的类型。 gid bigint 控制组ID。 classgid bigint Workload所属Class的控制组ID。 class text Class控制组。 workload text Workload控制组。 shares bigint 控制组分配的CPU资源配额。 limits bigint 控制组分配的CPU资源限额。 wdlevel bigint Workload控制组层级。 cpucores text 控制组使用的CPU核的信息。 父主题: 系统视图
  • 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 声明该游标的时间戳。 父主题: 系统视图
  • GS_WLM_OPERATOR_HISTORY GS_WLM_OPERATOR_HISTORY视图显示的是当前用户在当前CN上执行作业结束后的算子的相关记录。 此视图用于Database Manager从内核中查询数据,内核中的数据会定时被清理。当GUC参数enable_resource_record为on时,视图中的记录每隔3分钟被转储到系统表GS_WLM_OPERATOR_INFO中一次,同时视图中的记录被删除;当GUC参数enable_resource_record为off时,记录在视图中的存留时间达到超期时间后会被删除。记录的数据同表1。 父主题: 系统视图
共100000条