检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
开发设计建议概述 本开发设计建议约定数据库建模和数据库应用程序开发过程中,应当遵守的设计规范。依据这些规范进行建模,能够更好的契合GaussDB的分布式处理架构,输出更高效的业务SQL代码。 本开发设计建议中所陈述的“建议”和“关注”含义如下: 建议:用户应当遵守的设计规则。遵守这些规则,
开发规范 如果用户在APP的开发中,使用了连接池机制,那么需要遵循如下规范: 如果在连接中设置了GUC参数,那么在将连接归还连接池之前,必须使用“SET SESSION AUTHORIZATION DEFAULT;RESET ALL;”将连接的状态清空。 如果使用了临时表,那么在
分区策略 分区策略在使用DDL语句建表语句时通过PARTITION BY语句的语法指定,分区策略描述了在分区表中数据和分区路由映射规则。常见的分区类型有基于条件的Range分区、基于哈希散列函数的Hash分区、基于数据枚举的List列表分区: CREATE TABLE table_name
UBTree 其使用的btree做了如下重要的增强,简称Ubtree。 Ubtree索引增加了事务信息,能够独立进行MVCC;增加了IndexOnlyScan的比例,大大减少回表次数。 不依赖Vacuum进行旧版本清理。独立的空间回收能力,索引与堆表解耦,可独立清理,IO平稳度更优。
ETE批量场景,执行计划采用回到CN的方式,性能较差(类比创建GSI性能)。 对于INSERT、UPDATE、DELETE,执行计划采用分布式执行计划,会有性能损失。 不支持对基表列名或者ctid、xc_node_hash、xmin、xmax、tableoid(当基表为分区表时)
CREATE NODE GROUP 功能描述 创建一个新的集群节点组。 注意事项 CREATE NODE GROUP是集群管理工具封装的接口,用来实现集群管理。 该接口仅对管理员用户开放使用。 语法格式 1 2 3 CREATE NODE GROUP groupname WITH
IMPDP DATABASE CREATE 功能描述 导入DATABASE的准备阶段。 语法格式 IMPDP DATABASE [db_name] CREATE SOURCE = 'directory' OWNER = user [LOCAL]; 参数说明 db_name 导入后的新库名,如不指定则导入后保持原库名。
REFRESH INCREMENTAL MATERIALIZED VIEW 功能描述 REFRESH INCREMENTAL MATERIALIZED VIEW会以增量刷新的方式对物化视图进行刷新。 注意事项 增量刷新仅支持增量物化视图。 刷新物化视图需要当前用户拥有基表的SELECT权限。
查看表所在节点 用户在建表时可以指定表如何在节点之间分布或者复制,详情请参考•DISTRIBUTEBY,分布方式介绍可参阅选择分布方式。 用户在建表时也可设置“Node Group”来指定表所在的Group,详情请参考•TO{GROUPgroupname|...。 用户还可以通过以下命令查看表所在实例。
循环语句 简单LOOP语句 语法图 图1 loop::= 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 gaussdb=# CREATE OR REPLACE PROCEDURE proc_loop(i
案例:调整分布键 现象描述 某局点测试过程中EXPLAIN ANALYZE后有如下情况: 从执行信息上比较明确的可以看出HashJoin是整个计划的性能瓶颈点,并且从HashJoin的执行时间信息[2657.406,93339.924](数值的具体含义请参见SQL执行计划详解),
SEQUENCE函数 序列函数为用户从序列对象中获取后续的序列值提供了简单的多用户安全的方法。 nextval(regclass) 描述:递增序列并返回新值。 为了避免从同一个序列获取值的并发事务被阻塞, nextval操作不会回滚;即一旦值抓取, 就认为它已经被用过,并且不会再被返回。
聚集函数 聚集函数 sum(expression) 描述:所有输入行的expression总和。 返回类型: 通常情况下输入数据类型和输出数据类型是相同的,但以下情况会发生类型转换: 对于SMALLINT或INT输入,输出类型为BIGINT。 对于BIGINT输入,输出类型为NUMBER
分布列推荐函数 分布列推荐针对的是在分布式数据库下分布列以及分布方式的推荐,目的是在进行业务迁移或业务上线时,减少选择表分布列的人力成本。 sqladvisor.init(char, boolean, boolean, boolean, int, int) 描述:初始化参数。 返回值类型:bool
OS_THREADS 提供当前节点下所有线程的状态信息。 表1 OS_THREADS字段 名称 类型 描述 node_name text 当前节点的名称。 pid bigint 当前节点进程中正在运行的线程号。 lwpid integer 与pid对应的轻量级线程号。 thread_name
SUMMARY_FILE_IOSTAT 通过集群内各节点数据文件I/O统计的汇总结果,反映数据的I/O性能,用以发现I/O操作异常等性能问题。 其中phyrds、phywrts、phyblkrd、phyblkwrt、readtim、writetim字段按照各节点的数据累加求和,a
LOCAL_REL_IOSTAT 获取当前节点中数据文件I/O状态的累计值,显示为所有数据文件I/O状态的总和。 表1 LOCAL_REL_IOSTAT字段 名称 类型 描述 phyrds bigint 读物理文件的数目。 phywrts bigint 写物理文件的数目。 phyblkrd
STAT_BAD_BLOCK 获得当前节点表、索引等文件的读取失败信息。 表1 STAT_BAD_BLOCK字段 名称 类型 描述 nodename text 节点名称。 databaseid integer database的oid。 tablespaceid integer tablespace的oid。
SESSION_STAT 当前节点以会话线程或AutoVacuum线程为单位,统计会话状态信息。 表1 SESSION_STAT字段 名称 类型 描述 sessid text 线程启动时间+线程标识。 statid integer 统计编号。 statname text 统计会话名称。
STATEMENT_COUNT 显示数据库当前节点当前时刻执行的五类语句(SELECT、INSERT、UPDATE、DELETE、MERGE INTO)和(DDL、DML、DCL)统计信息。 管理员权限用户查询STATEMENT_COUNT视图则能看到所有用户当前节点的统计信息。