繁体   English   中英

用Java将数据从一台数据库服务器传输到另一台

[英]Data transfer from one Database server to another in Java

我真的没有问很多问题,但是这次,太多了。 这是问题所在。 我有这两个数据库(Sybase)服务器,并且该数据库有90多个表,但是我只需要存档20个表。

但是,这些表非常大,最多可以包含9000万条记录。 所以这是交易。 目前,我要做的是

  • 对于大表(记录的分配),我创建一个临时表并将其从临时表复制到目标位置,但为每个语句运行一个插入。
  • 复制完成后,我删除创建的临时表。

现在,我尝试了其他方法,例如。

  1. 到目前为止,多线程还可以,但是归档速度还不够好。 例如,它在一小时内可以存档多达160万条记录。 这对我的老板来说还不够。

请就您认为可以帮助的其他任何解决方案,方法或思想提供建议。 请不要欢迎所有解决方案。

提前致谢。

不要自己复制如此数量的数据。 创建数据库作业以复制/存档表。 并在您的应用程序中监视这些作业的输出/日志。 它将更快。

  1. 生成SQL执行脚本并将其传递到数据库。 这意味着从select语句中获取所有记录并创建insert/update语句:

String query = "UPDATE OR INSERT INTO TABLE (ID, VALUE) VALUES (9, 2) MATCHING (IDPRODUCT, COUNT); "+ "UPDATE OR INSERT INTO TABLE (ID, VALUE) VALUES (10, 1) MATCHING (IDPRODUCT, COUNT); "+ "COMMIT WORK;";

  1. 如果Sybase可以连接到其他Sybase实例,则创建过程以执行上一条。 对于FierebirdSQL,可以通过将过程名称作为参数指令的ON EXTERNALEXECUTE PROCEDURE

The users need to monitor and know how the tool is running. 对于每个提交的表,更新用户界面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM