Oracle数据库的并行查询,与 Oracle 兼容性对比

OceanBase 支持 Oracle 中绝大部分的基本 SQL 语法。这意味着在从 Oracle 过渡到 OceanBase 的过程中,您不需要消耗大量的时间去学习新的语法,并且可以流畅的实现从 Oracle 到 OceanBase 的迁移。

基于优化和开发的考虑,有一些功能 OceanBase 暂不支持或者是与 Oracle 的表现有所差异。所以本篇文档中将分节对比 OceanBase 对 Oracle 的兼容。

SQL 语法OceanBase 支持 Oracle 中基本 SQL 语法。

少数功能性缺失会报语法不支持的错误,例如在层次查询包含多表连接的场景下就会报错。

OceanBase 暂不支持 Oracle 部分较复杂的 OLAP 语法,如模式匹配、 PIVOT/ UNPIVOT 函数、多态表函数和频繁项目集计算。

SQL 数据类型Oracle 中有 24 个数据类型, OceanBase 目前支持 18 种,详细信息请参阅章节 内建数据类型。

基于优化的考虑,LONG 和 LONG RAW 数据类型过于老旧,所以 OceanBase 不计划支持这两种数据类型。

OceanBase 中大对象数据类型有 48 M 的大小限制且性能不佳,所以不推荐在复杂场景下使用。详细信息请参阅章节 大对象类型。

字符集和 CollationOceanBase 支持 UTF-8、UTF-16、GBK、GB18030 和国家字符集。

OceanBase 仅支持大小写敏感的 Collation。

OceanBase 不支持多语言语义的 Collation 比较和排序。

内建函数

Oracle 中支持内建函数 117 个,OceanBase 暂时支持 103 个,详细信息请参阅章节 函数。

系统视图Oracle 中有字典视图 400 多个,OceanBase 目前兼容 17 个:ALL_CONS_COLUMNS

ALL_CONSTRAINTS

ALL_IND_COLUMNS

ALL_INDEX

ALL_OBJECTS

ALL_PART_KEY_COLUMNS

ALL_PART_TABLES

ALL_SEQUENCE

ALL_SOURCE

ALL_SUBPART_KEY_COLUMNS

ALL_SYNONYMS

ALL_TAB_COLUMNS

ALL_TAB_PARTITIONS

ALL_TABLES

ALL_TYPES

ALL_USERS

ALL_VIEWS

Oracle 中有性能视图 700 多个,OceanBase 目前兼容 3 个。V$SYSTEM_EVENT

V$SESSION_WAIT

V$NLS_PARAMETERS

SQL 功能

OceanBase 支持 Oracle 中核心的 SQL 功能:

计划缓存

大纲绑定

计划管理演进

代价优化器

代价改写

预编译语句

全局索引

函数索引

外键OceanBase 支持外键。

OceanBase 不支持添加外键约束 DISABLE 和 ENABLE。

OceanBase 不支持 ALTER TABLR 语句中添加外键约束。

OceanBase 不支持级联中的 SET NULL。

触发器OceanBase 目前仅支持行级触发器。

OceanBase 目前只支持在表上创建触发器,不支持在视图上创建触发器。

OceanBase 不支持对触发器使用 DISABLE 和 ENABLE 操作。

数据库链接OceanBase 暂不支持异构数据库的链接。

OceanBase 暂不支持数据库链接的写语句。

OceanBase 暂不支持部分子查询(主要是不能提升的子查询)。

OceanBase 暂不支持 LINK 算子的 RESCAN 操作(执行时报错)。

同义词

OceanBase 支持对表、视图、同义词和序列等对象创建同义词,并且支持创建公共同义词。

可更新视图

OceanBase 不支持 WITH CHECK OPTION 子句。

约束OceanBase 支持 CHECK、UNIQUE 和 NOT NULL 约束。

OceanBase 不支持 UNIQUE 约束的 DISABLE 操作。

Hint

Oracle 中有 Hint 73 个,目前 OceanBase 兼容 25 个。另外,OceanBase 特有 Hint 20 个:

OceanBase 兼容 Oracle 的 Hint

OceanBase 特有的 Hint

USE_BNL

INDEX Hint

NO_USE_BNL Hint

FULL Hint

USE_PX Hint

LEADING Hint

NO_USE_PX Hint

ORDERED Hint

USE_JIT Hint

USE_MERGE Hint

NO_USE_JIT Hint

NO_USE_MERGE Hint

USE_HASH_AGGREGATION Hint

USE_HASH Hint

NO_USE_HASH_AGGREGATION Hint

NO_USE_HASH Hint

USE_LATE_MATERIALIZATION Hint

USE_NL Hint

NO_USE_LATE_MATERIALIZATION Hint

NO_USE_NL Hint

USE_NL_MATERIALIZATION Hint

PARALLEL Hint

NO_USE_NL_MATERIALIZATION Hint

PQ_DISTRIBUTE Hint

PLACE_GROUP_BY Hint

NO_REWRITE Hint

NO_PLACE_GROUP_BY Hint

NO_EXPAND Hint

NO_PRED_DEDUCE Hint

USE_CONCAT Hint

READ_CONSISTENCY Hint

MERGE Hint

FROZEN_VERSION Hint

NO_MERGE Hint

QUERY_TIMEOUT Hint

UNNEST Hint

LOG_LEVEL Hint

NO_UNNEST Hint

USE_PLAN_CACHE Hint

QB_NAME Hint

TRANS_PARAM Hint

TRACING Hint

STAT Hint TOPK Hint

TRACE_LOG Hint

安全相关

透明加密

OceanBase 支持 Oracle 兼容的 TDE 功能, 重做日志文件( Redo Log)加密暂不支持。

审计OceanBase 支持 Oracle 的标准审计,但是暂不支持统一审计。

OceanBase 审计结果支持存放于文件或者内部审计表中。

OceanBase 支持语句和对象审计类型,对象审计只支持表、序列和包对象, 其他对象暂不支持。

OceanBase 暂不支持网络审计和 FGA 细粒度审计。

标签安全OceanBase 支持 Oracle 中的标签安全(Label Security)功能。

OceanBase 暂不支持策略在创建生效后的 DISABLE 操作以及 DISABLE 后的 ENABLE 操作。

传输链路加密SSL

OceanBase 支持客户端与 OceanBase 服务器的传输链路加密。

分区支持

OceanBase 支持一级,二级分区,支持哈希(Hash)、范围(Range)和列表(List)等分区形式。

二级分区支持如下表:

分区/子分区

哈希

范围

列表

哈希

不支持

支持

支持

范围

支持

不支持

支持

列表

支持

支持

不支持

OceanBase 中分区维护操作命令只支持基本的,例如一级分区 ADD PARTITION 操作。

OceanBase 中暂不支持复杂分区维护操作,例如 SPLIT、MERGE 和 EXCHANGE 分区等。

OceanBase 中不支持 TRUNCATE 分区。

OceanBase 中二级分区只支持同构形态的,不支持异构形态的二级分区。

并行查询OceanBase 支持类 Oracle 的并行查询,OceanBase 中 DOP 需要手工指定,且暂不支持 Auto DOP 功能。

OceanBase 暂不支持 PDML。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值