系统1里有一个表(表1)需要与系统2的数据表2进行定时同步,系统1数据库用的是infomix,系统2数据库用的是Oracle,表2里的那个表里有大约1500条数据,并且它的表结构跟表1数的表结构不一样,但包含表1的所有字段,表2会有一些增删改的操作,现在我要定时使表1跟表2保持同步,频率大概是1个月一次,定时的机制我已经实现,现在我就是想求一个算法,尽量使用最少的资源和对表1进行最少的操作,实现对表1的更新,不要跟我说更新的时候把表1数据全删掉,再从表2把要用的数据取出来存到表1里,这样我也会,但很不安全
表2会有一些增删改的操作,也就是说有些记录它会改掉,也会新增或减少一些记录,单纯的update表1是不行的啦,这个要怎么处理?
第1个回答 2009-11-13
才1500条记录,怎么弄也花不了很长时间,也不会占很大资源。
因为是两个不同的数据库所以用纯SQL是做不了的。只有读到服务器中做比较然后更新。
这样的操作最好不要用框架,自己写也不是很难的,表2你只要读一次然后循环发update到表1里去,表1的数据库连接你创建一个就好了,你把它缓存了,在循环里不停的反复用(只用一个就行了不用写连接池,因为不涉及多线程,--千万不要发一条update建一个connection 然后关闭)整个过程大概不到一分中就完成(环境不一样会有一点出入)
任何疑问
blog.csdn.net/shmilyhe
mail:shmilyhe@163.com
因为是两个不同的数据库所以用纯SQL是做不了的。只有读到服务器中做比较然后更新。
这样的操作最好不要用框架,自己写也不是很难的,表2你只要读一次然后循环发update到表1里去,表1的数据库连接你创建一个就好了,你把它缓存了,在循环里不停的反复用(只用一个就行了不用写连接池,因为不涉及多线程,--千万不要发一条update建一个connection 然后关闭)整个过程大概不到一分中就完成(环境不一样会有一点出入)
任何疑问
blog.csdn.net/shmilyhe
mail:shmilyhe@163.com
第2个回答 推荐于2017-09-09
在系统1建个临时表,把系统2里的数据读进系统1的临时表去,然后系统1的两个表比较,进行插入删除操作
--------------------------------
1.用java将系统2的表读到系统1的infomix的临时表中
2.用java调用执行sql语句,对系统1infomix中的两个表执行对比,修改插入删除。数据库执行sql的性能可比在java中比对什么的快多了。本回答被提问者采纳
--------------------------------
1.用java将系统2的表读到系统1的infomix的临时表中
2.用java调用执行sql语句,对系统1infomix中的两个表执行对比,修改插入删除。数据库执行sql的性能可比在java中比对什么的快多了。本回答被提问者采纳
第3个回答 2009-11-13
在表2中增加一个字段,用来保存是否修改,如果修改的话就更新表1,否则就不更新,同时在把表2中的状态也更新一下
第4个回答 2009-11-15
我曾经做过一个VC++同步程序,跟你描述得一模一样