解决方案 »

  1.   

    开户为什么要synchronize,主键用个sequence
      

  2.   

    现在的原因是你不使用synchronize的时候,无法保障数据的一致性。我们涉及到本地数据库和远程端数据库。要保障两边的数据一致性。
      

  3.   


    缩小代码块是否能保障数据的一致性?多线程你的意思是否写一个线程池,每次开销户的时候线程池的数量不能太多。
    保障数据的一致性是要你自己控制的,在尽可能小的范围内去保障一致,既然使用了同步就必须要这样考虑,还有你得知道使用同步是为了保障哪些数据的一致性,如果你是怕主键冲突的话,直接使用guid就可以了啊,这种情况下就算不使用同步都没问题
      

  4.   

    整体的过程现在是单线程执行,现在大批量数据需要一条一条的执行,这个不是异步执行,就是同步执行sql支持批量处理的。一次性执行3000条也没有问题 啊。
    把sql集中一下,数据在内存中比对好。表中原有数据都删除(可以备份到日志之类的),然后全部插入回去。 数据库操作就简化成 select ,delete,insert , 而且都是批量的。数据比对在 内存中去做 ,比用sql做要快一些。
    暂时想到这些。
      

  5.   

    你是否可以采用池的概念 设定时间和大小 满足了就提交
    同时可以拼接好SQL 同时插入多条