多个进程去同一个表(该表是实时变化的)数据,但是要保证每一个进程取到的数据都是唯一的。
哪位有这方面的经验?谢谢。

解决方案 »

  1.   

    看的不是太明白。。ORACLE数据库吗?
      

  2.   

    由于程序处理效率较差,需要分布式部署。然后分布式部署的时候就要考虑到:
    1:每个进程没有任务的时候就从oracle库取,但是要保证不重复,否则会有多个进程处理一条数据,导致效率不能明显提高。
    2:如果同时多个进程来取,就要有一个策略分配给谁。
    3:要保证所有的任务都会被分配到不同的进程中来处理。就这么简答的业务逻辑。
      

  3.   

    可以设置一个标志位,如flag:0:未处理,1:已处理。
    可以用select * from table1 where flag=0 where rownum<2 for update主动锁定数据行。
    修改标志位为1,进行其它处理,完成后提交(如果多行,可使用游标)。
    锁定后如果有冲突则只能串行操作。
      

  4.   

    用SCN吧,ORACLE的数据一致性依靠SCN