检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
游标概述 为了处理SQL语句,存储过程进程分配一段内存区域来保存上下文联系。游标是指向上下文区域的句柄或指针。借助游标,存储过程可以控制上下文区域的变化。 当游标作为存储过程的返回值时,如果使用JDBC调用该存储过程,返回的游标将不可用。 游标的使用分为显式游标和隐式游标。对于不
案例:调整GUC参数best_agg_plan 现象描述 t1的表定义为: 1 create table t1(a int, b int, c int) distribute by hash(a); 假设agg下层算子所输出结果集的分布列为setA,agg操作的group by
GOTO语句 GOTO语句可以实现从GOTO位置到目标语句的无条件跳转。GOTO语句会改变原本的执行逻辑,因此应该慎重使用,或者也可以使用EXCEPTION处理特殊场景。当执行GOTO语句时,目标Label必须是唯一的。 语法 label declaration ::= goto
UPDATE&DELETE操作规范 建议3.5 避免并发UPDATE/DELETE行存表的同一行 违反规范的影响: 并发UPDATE/DELETE行存表可能导致行锁阻塞和分布式死锁风险,导致业务报错和性能下降。 方案建议: 按主键或分布列进行分组UPDATE/DELETE,组间并行,组内串行。
二进制字符串函数和操作符 SQL定义了一些二进制字符串函数,这些函数使用关键字而不是逗号来分隔参数。另外,DWS提供了函数调用所使用的常用语法。 octet_length(string) 描述:二进制字符串中的字节数。 返回值类型:integer 示例: 1 2 3 4 5 SELECT
DATABASE对象设计规范 规则2.1 避免直接使用内置的DATABASE(如postgres、gaussdb等) 违反规则的影响: 内置的数据库编码、兼容模式不符合业务要求时,需要重新迁移数据。 所有业务均使用内置数据库,影响变更耗时。 方案建议: 根据实际业务需要,合理创建专用DATABASE并划分给业务使用。
使用COPY FROM导入时报错“invalid byte sequence for encoding "UTF8": 0x00” 问题现象 使用COPY FROM导入GaussDB(DWS)时,报错: “ invalid byte sequence for encoding "UTF8":
查询表报错:missing chunk number %d for toast value %u in pg_toast_XXXX 问题现象 查询表报错:missing chunk number %d for toast value %u in pg_toast_XXXX。 原因分析
向表中插入数据报错:duplicate key value violates unique constraint "%s" 问题现象 向表中插入数据报错:duplicate key value violates unique constraint "%s"。 1 2 3 4
GaussDB(DWS) SQL编写规则 DDL 【建议】在GaussDB(DWS)中,建议DDL(建表、comments等)操作统一执行,在批处理作业中尽量避免DDL操作。避免大量并发事务对性能的影响。 【建议】在非日志表(unlogged table)使用完后,立即执行数据清
DDL操作规范 建议3.1 DDL操作(CREATE除外)避免在业务高峰期和长事务中执行 违反规范的影响: DDL操作普遍持锁级别高,如ALTER、DROP、TRUNCATE、REINDEX、VACUUM FULL等,执行时会造成业务等锁阻塞。 高峰期执行持锁级别高的DDL操作,造成业务等锁阻塞。
案例:改写SQL消除in-clause 优化前 in-clause/any-clause是常见的SQL语句约束条件,有时in或any后面的clause都是常量,类似于: 1 2 3 4 select count(1) from calc_empfyc_c1_result_tmp_t1
时间/日期操作符 用户在使用时间和日期操作符时,对应的操作数请使用明确的类型前缀修饰,以确保数据库在解析操作数的时候能够与用户预期一致,不会产生用户非预期的结果。 比如下面示例没有明确数据类型就会出现异常错误。 1 SELECT date '2001-10-01' - '7' AS
文本检索调试函数 ts_debug([ config regconfig, ] document text, OUT alias text, OUT description text, OUT token text, OUT dictionaries regdictionary[]
Roaring Bitmap聚合函数 GaussDB(DWS)自8.1.3集群版本开始,支持高效的位图聚合函数,可用于用户画像,精准营销等场景,极大的提高了查询性能。 rb_build_agg(int) 描述:将分组内的int值聚合成一个roaringbitmap值。 返回值类型:roaringbitmap
GaussDB(DWS) SQL编写规则 DDL 【建议】在GaussDB(DWS)中,建议DDL(建表、comments等)操作统一执行,在批处理作业中尽量避免DDL操作。避免大量并发事务对性能的影响。 【建议】在非日志表(unlogged table)使用完后,立即执行数据清
动态调用匿名块 动态调用匿名块是指在动态语句中执行匿名块,使用EXECUTE IMMEDIATE…USING语句后面带IN、OUT来输入、输出参数。 语法 语法请参见图1。 图1 call_anonymous_block::= using_clause子句的语法参见图2。 图2 using_clause-4
JDBC驱动程序9.3-1103或更高版本 PSQL ODBC 09.01.0200或更高版本 使用JDBC/ODBC连接DWS,可参见《数据仓库服务开发指南》的教程:使用JDBC或ODBC开发。 建议使用官方推荐的方式连接数据库。参见连接集群方式。 其它客户端不能保证100%兼容性,需要客户自行验证。
VOKE语法便捷地控制不同用户对各Schema及其下属对象的权限。 从便捷性和资源共享效率上考虑,推荐使用Schema进行业务隔离。 建议系统管理员创建Schema和Database,再赋予相关用户对应的权限。 Database设计建议 【建议】在实际业务中,根据需要创建新的Da
群在某一时间点某些schema集的数据备份,记录了这一时刻集群指定schema的所有业务数据。 约束与限制 手动创建的快照支持备份到OBS服务、NFS介质。 待创建集群粒度快照的集群状态必须为“可用”、“待重启”或“非均衡”中的任意一种,当集群版本低于8.1.3.101时,“只读”状态的集群也可创建集群粒度的快照。