UPDATE mem_card_new  a set bj=concat(bj,'," + brid + "') where exists(select 1 from  brflag b  where instr(substr(b.idsvalue, 1, length(b.idsvalue) - 1),  concat('''', concat(wsid, ''''))) > 0   and b.tablename='mem_card_new' and b.brid='" + brid + "'  and nvl(instr(a.bj,'" + brid + "'),0)=0) and wsid in(select a.wsid from EXP_TEMPCARD a inner join mem_card_new b on a.wsid=b.wsid and a.cent=b.mem_jf_amt and a.brid='" + brid + "')我是用的WEB SERVICE处理执行这个SQL语句的,这个WEB SERVICE调用的比较频繁,每2分钟就会有20多个请求,经常会死锁,各位有没有什么好的办法去解决这个死锁的问题呢?oracleweb service

解决方案 »

  1.   


    能具体一点吗? 这个是多个客户端调用 WEB SERVICE 怎么排队呢
      

  2.   

    oracle会自动解锁的,不怕死锁~最多就是长时间排队
      

  3.   

    为什么不加一个状态位呢,我们是这样做的,既然你的sql是大批量的抓取数据,那么抓取到以后,首先将状态位更新为1,操作结束后,再将状态更新回来,这样就能够保证第二次不会抓取到同样的数据。