Java中从一个数据库服务器到另一个数据库服务器的数据传输

Java中从一个数据库服务器到另一个数据库服务器的数据传输,java,sql,jdbc,sybase,Java,Sql,Jdbc,Sybase,我问的问题不多,但这次太多了。问题出在这里。 我有两个数据库(Sybase)服务器,这个数据库有90多个表,但我只需要归档20个表 但是,这些表相当大,最多可以包含9000万条记录。这就是交易。目前,我所做的是 对于大表(很多记录),我创建了一个临时表,并将其从临时表复制到目标,但对每个语句都运行insert 复制完成后,我将删除创建的临时表 现在,我尝试了其他方法,比如 到目前为止,多线程还可以,但归档速度还不够快。例如,它可以在一小时内归档多达160万条记录。这对我的老板来说还不够好 请

我问的问题不多,但这次太多了。问题出在这里。 我有两个数据库(Sybase)服务器,这个数据库有90多个表,但我只需要归档20个表

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

  • 对于大表(很多记录),我创建了一个临时表,并将其从临时表复制到目标,但对每个语句都运行insert
  • 复制完成后,我将删除创建的临时表
现在,我尝试了其他方法,比如

  • 到目前为止,多线程还可以,但归档速度还不够快。例如,它可以在一小时内归档多达160万条记录。这对我的老板来说还不够好 请就您认为有帮助的任何其他解决方案、方法或想法提供建议。请不要以为所有的解决方案都是受欢迎的


    提前感谢。

    不要自己复制这么多数据。创建数据库作业以复制/归档表。并监视应用程序中这些作业的输出/日志。速度会快得多

  • 生成SQL执行脚本并将其传递到数据库。这意味着从
    select
    语句中获取所有记录,并创建
    insert/update
    语句:
  • String query=“更新或插入表(ID,值)值(9,2)匹配(IDPRODUCT,COUNT);”+
    更新或插入表(ID,值)值(10,1)匹配(IDPRODUCT,COUNT)+
    “投入工作;”

  • 如果Sybase可以连接到其他Sybase实例,请为execute previous子句创建过程。对于firebirdsql,可以通过和指令来实现

  • 用户需要监视并了解工具的运行情况。
    对于每个提交的表,更新用户界面。

    忘记Java部分,使用数据库工具完成所有操作。如果使用编程语言,则必须通过网络在两个方向上移动数据。使用数据库本身进行操作将更快、更可靠。是的,问题是用户需要一个带有UI的应用程序。您对此有何建议?@KennethClark这是一场噩梦相信我。如果您使用的是Sybase ASE,您可能还想看看组件集成服务(CI)。它允许您通过本地Sybase ASE实例与远程DB交互。这类似于将远程硬盘安装到本地系统。哇,@MichaelGardner,看起来很不错。我去看看。谢谢,我就是这么做的。我从select结果集生成这些(INSERT)语句,并在迭代过程中执行INSERT…Push
    all
    modify语句到数据库。我看到了它。谢谢你的更新。添加匹配子句会有什么影响。。。如果我可以问的话?@OluDoug这是我的错误。我为每个提交的表更新用户界面向下移动了
    在注释之后。换句话说,在调用泵数据的存储过程之后,您可以更新用户界面。问题是,它是通过网络进行的,除非您告诉我有一种方法可以在两个sybase服务器之间进行事务处理。我最高兴听到这个消息