原oracle数据库有大量的存储过程,请问怎么快速转到tidb?

【 TiDB 使用环境】开发环境
【 TiDB 版本】不太清楚
【遇到的问题:问题现象及影响】
有一个项目正要开始使用tidb,但是遇到了一个情况。原先的项目使用的oracle,并且写了大量的存储过程。目前如果要使用tidb必须迁移这一些存储过程。请问有人有相关经验吗?

  1. tidb目前应该是还不支持存储过程
  2. 可以关注下新版本
  3. 可以把存储过程放到业务侧去实现

只能改写,因为tidb不支持存储过程,如果原来用的MySQL,迁移tidb很方便,但是原来用oracle的话,个人觉得,OceanBase要更方便一点,改动量更少


不支持。更改程序吧。

您是ocenabase 高手??

只能考虑迁移业务, tidb 目前是不支持的

建议如下:

  1. 整理业务场景
  2. 核对数据模型
  3. 检查所有的强引用和强约束
  4. 检查所有的存储过程的应用场景
  5. 启用中间服务的方式替代相应的存储过程和强约束,强引用的逻辑…

整个过程会比较痛苦… 不过整体迁移完成之后,对于扩展能力,性能会有比较大的提高…

不是,用过而已,OceanBase的oracle模式能兼容大部分的oracle语法,应用上改造比较小,我们原来有应用数据库国产化走的就是oracle切换到OceanBase

OceanBase 使用起来感觉怎么样

tidb不支持存储过程,现在一般建议程序来实现。

不支持存储过程 只能改写

难点就是目前没有业务,只能对着超长的存储过程去改写。而且还恩多oracle的函数还不支持,就得用别的替代。不太熟悉oracle,只能碰到一个学一个

我搜到一个 Oracle 与 TiDB 函数和语法差异对照,但是不太齐全。有更多相关的分享改写经验的文档吗?

那您到 Oceanbase吧 。号称兼容90% oracle 11g. 什么存储过程,函数,人家都支持。

是不是学了N多tidb 有舍不得放弃呢???哈哈

:joy:存储过程太反人类了,为了科技进步社会发展,还是都改写比较合适

存储过程存在的价值: DBA 可以当程序员,实现一定的功能。 开发DBA。 但是对于后期迁移改造来说是个大坑。

你只说了对DBA的价值。
对实际业务的价值是:减少数据的来回传输,把一些计算放在了数据库侧。适合比较复杂的SQL

tidb我记得是不支持存储过程的吧

目前正在做移植,其他函数都好说,但是对于rollup除了union all之外还有别的好办法吗?

单数据源更新时,异步刷新其他的多套数据格式,这样可以解决 你的担忧,但是中间服务会变得复杂点

不过性能就上去了,而且是解耦的,不影响扩展