检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
控制语句 表1 条件语句 序号 Oracle数据库 GaussDB数据库 1 IF THEN 支持 2 IF THEN ELSE 支持 3 IF THEN ELSIF 支持 4 simple CASE: CASE selector WHEN selector_value_1 THEN
数据库对象 表1 schema对象 序号 Oracle数据库 GaussDB数据库 差异 1 分析视图 不支持 - 2 属性维度 不支持 - 3 集群 支持 - 4 约束 支持 - 5 数据库链接 支持 - 6 数据库触发器 支持 - 7 尺寸 支持 - 8 外部过程库 不支持 -
增量物化视图 概述 支持和约束 使用 父主题: 物化视图
逻辑解码 逻辑解码概述 逻辑解码选项 使用SQL函数接口进行逻辑解码 使用流式解码实现数据逻辑复制 逻辑解码支持DDL 逻辑解码数据找回功能 父主题: 逻辑复制
分区策略 分区策略在使用DDL语句建表语句时通过PARTITION BY语句的语法指定,分区策略描述了在分区表中数据和分区路由映射规则。常见的分区类型有基于条件的Range分区、基于哈希散列函数的Hash分区、基于数据枚举的List列表分区: CREATE TABLE table_name
分区表动态剪枝 对于检索条件中存在带有变量的分区表查询语句,由于优化器阶段无法获取用户的绑定参数,因此优化器阶段仅能完成indexscan、bitmapindexscan、indexonlyscan等算子检索条件的解析,后续会在执行器阶段获得绑定参数后,完成分区筛选。算子包含的检索条件中需要至少包含一个分区键字段
分割分区 用户可以使用分割分区的命令来将一个分区分割为两个或多个新分区。当分区数据太大,或者需要对有MAXVALUE的范围分区/DEFAULT的列表分区新增分区时,可以考虑执行该操作。分割分区可以指定分割点将一个分区分割为两个新分区,也可以不指定分割点将一个分区分割为多个新分区。分割分区可以通过指定分区名或者分区值来进行
分区表系统视图&DFX 分区表相关系统视图 分区表相关内置工具函数 父主题: 分区表
存储引擎体系架构概述 静态编译架构 通用数据库服务层 父主题: 存储引擎体系架构
RCR Uheap RCR Uheap多版本管理 RCR Uheap可见性机制 RCR Uheap空闲空间管理 父主题: 存储格式
UBTree 其使用的btree做了如下重要的增强,简称Ubtree。 Ubtree索引增加了事务信息,能够独立进行MVCC;增加了IndexOnlyScan的比例,大大减少回表次数。 不依赖Vacuum进行旧版本清理。独立的空间回收能力,索引与堆表解耦,可独立清理,IO平稳度更优
闪回恢复 闪回恢复功能是数据库恢复技术的一环,可以有选择性地撤销一个已提交事务的影响,将数据从人为不正确的操作中进行恢复。在采用闪回技术之前,只能通过备份恢复、PITR等手段找回已提交的数据库修改,恢复时长需要数分钟甚至数小时。采用闪回技术后,通过闪回Drop和闪回Truncate
常见问题及定位手段 snapshot too old storage test error 备机读业务报错:"UBTreeSearch::read_page has conflict with recovery, please try again later" 长查询执行期间大量并发更新偶现写入性能下降
Foreign Data Wrapper GaussDB的FDW(Foreign Data Wrapper)可以实现各个GaussDB数据库及远程服务器(包括数据库、文件系统)之间的跨库操作。目前支持的外部数据封装器类型包括file_fdw。 file_fdw
Partition-wise Join Partition-wise Join是一种分区级并行的优化技术,是指在符合一定条件的情况下,将两张表之间的Join,分解为两张表中对应的两个分区之间的Join。通过并发执行、减少数据通信量等方式,提升分区表的Join查询的性能。 Partition-wise
分区剪枝 分区剪枝是GaussDB提供的一种分区表查询优化技术,数据库SQL引擎会根据查询条件,只扫描特定的部分分区。分区剪枝是自动触发的,当分区表查询条件符合剪枝场景时,会自动触发分区剪枝。根据剪枝阶段的不同,分区剪枝分为静态剪枝和动态剪枝,静态剪枝在优化器阶段进行,在生成计划之前
分区自动扩展 分区的自动扩展功能是分区表的一种能力增强。当DML业务(INSERT、UPDATE、UPSERT、MERGE INTO、COPY)新增数据无法匹配到已有的任一分区时,会自动创建一个新的分区。此外,以partition/subpartition for partition_value
交换分区 用户可以使用交换分区的命令来将分区与普通表的数据进行交换。交换分区可以快速将数据导入/导出分区表,实现数据高效加载的目的。在业务迁移的场景,使用交换分区比常规导入会快很多。交换分区可以通过指定分区名或者分区值来进行。 执行交换分区命令会使得Global索引失效,可以通过UPDATE
清空分区 用户可以使用清空分区的命令来快速清空分区的数据。与删除分区功能类似,区别在于清空分区只会删除分区中的数据,分区的定义和物理文件都会保留。清空分区可以通过指定分区名或者分区值来进行。 执行清空分区命令会使得Global索引失效,可以通过UPDATE GLOBAL INDEX
分割分区 用户可以使用分割分区的命令来将一个分区分割为两个或多个新分区。当分区数据太大,或者需要对有MAXVALUE的范围分区/DEFAULT的列表分区新增分区时,可以考虑执行该操作。分割分区可以指定分割点将一个分区分割为两个新分区,也可以不指定分割点将一个分区分割为多个新分区。分割分区可以通过指定分区名或者分区值来进行