Oracle 数据库同步问题。

2015-09-18 09:12:47 +08:00
 xxdd

目前需求是有 2 张表,一张 5000 条左右,一条 1500 条左右。

要求夜里同步到另一个库。

现在定时任务和库都连好了。

想问下 5000 条读出来怎么 insert 进去比较好。

1.目前想的第一个 List<Map<String,Object>> (一次读 5000 条会不会卡)
2.分页 200 条 200 条的读 再写。(同步是覆盖操作)
( ̄▽ ̄")

求指教 怎么读数据再插比较好?
么么哒(*  ̄ 3 )(ε ̄ *)

2966 次点击
所在节点    Java
10 条回复
Muninn
2015-09-18 09:36:15 +08:00
看表的宽度了 不宽完全没问题
以前我都是每 5 万条插一次.

不过这种批量的数据转移 为了以后的扩展性 建议不要用 insert

使用 sqlldr

那效率 提升几十一百倍问题不大 瞬间就倒完了

但是难写 java 没接口 只能导出和导入都调用系统工具 中间创建个管道让导出的数据直接通过内存导入
最后说下来 java 啥作用都没起 用 java c perl python shell 写都一样
xxdd
2015-09-18 10:30:23 +08:00
@Muninn 刚刚试了 5000 条 16s 没问题。

谢啦!!☆⌒(*^-゜)v
WordCount
2015-09-18 10:41:48 +08:00
kettle 也可以。
Muninn
2015-09-18 10:47:52 +08:00
对了 如果两边都是 oracle 的话 完全没必要 etl
用 dblink 就好了...
bigzhu
2015-09-18 11:11:45 +08:00
曾经被要求 1 小时内把一张 5 亿数据的表…迁移到另一个 Oracle 数据库的人飘过。
而且还要求是迁移过去就已经建立好索引了哦。
spance
2015-09-18 11:20:54 +08:00
不会有比 dblink 更快更好的方法了
bugsnail
2015-09-18 12:35:58 +08:00
@bigzhu 当时有搞定吗?
bigzhu
2015-09-18 13:20:30 +08:00
@bugsnail 有啊…省级系统割接。不搞定不行。用的物化视图。
idblife
2015-09-18 13:38:49 +08:00
这个比较简单,直接用 oracle 游标或者读到内存里再 insert 都不是个事情,话说你试试不就知道了。
terryhyx
2015-09-18 13:46:05 +08:00
比较 oracle 的做法应该是 dblink+MV 然后晚上刷新 MV 就好了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/221662

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX