目前需求是有 2 张表,一张 5000 条左右,一条 1500 条左右。
要求夜里同步到另一个库。
现在定时任务和库都连好了。
想问下 5000 条读出来怎么 insert 进去比较好。
1.目前想的第一个 List<Map<String,Object>> (一次读 5000 条会不会卡)
2.分页 200 条 200 条的读 再写。(同步是覆盖操作)
( ̄▽ ̄")
求指教 怎么读数据再插比较好?
么么哒(*  ̄ 3 )(ε ̄ *)
1
Muninn 2015-09-18 09:36:15 +08:00
看表的宽度了 不宽完全没问题
以前我都是每 5 万条插一次. 不过这种批量的数据转移 为了以后的扩展性 建议不要用 insert 使用 sqlldr 那效率 提升几十一百倍问题不大 瞬间就倒完了 但是难写 java 没接口 只能导出和导入都调用系统工具 中间创建个管道让导出的数据直接通过内存导入 最后说下来 java 啥作用都没起 用 java c perl python shell 写都一样 |
3
WordCount 2015-09-18 10:41:48 +08:00 via Android
kettle 也可以。
|
4
Muninn 2015-09-18 10:47:52 +08:00
对了 如果两边都是 oracle 的话 完全没必要 etl
用 dblink 就好了... |
5
bigzhu 2015-09-18 11:11:45 +08:00 via Android
曾经被要求 1 小时内把一张 5 亿数据的表…迁移到另一个 Oracle 数据库的人飘过。
而且还要求是迁移过去就已经建立好索引了哦。 |
6
spance 2015-09-18 11:20:54 +08:00 via iPhone
不会有比 dblink 更快更好的方法了
|
9
idblife 2015-09-18 13:38:49 +08:00
这个比较简单,直接用 oracle 游标或者读到内存里再 insert 都不是个事情,话说你试试不就知道了。
|
10
terryhyx 2015-09-18 13:46:05 +08:00
比较 oracle 的做法应该是 dblink+MV 然后晚上刷新 MV 就好了
|