现在对一个表进行查询操作,由于是个大数据量且查询后有一系列的操作,故想到了用锁的方法,请各位大侠帮忙,如何对一段查询结果加锁和解锁。
如对表中的1~100条加锁解锁,101~200条加锁解锁

解决方案 »

  1.   

    select * from table where rownum < 101 for update
      

  2.   

    select * from 
    (select rownum rowid,* from  table where rownum < 201 ) a
    where rowid > 100 for update
      

  3.   

    select * from table where rownum < 101 for update
      

  4.   

    其实我的想法是通过多线程去对同一个表操作。为了避免操作的重复及得到数据计算的混淆估想到的锁。
    如:
    线程1在查询当前表中的前100条数据时得到的是ID 1~100
    线程2在查询当前表中的前100条数据时得到的是ID 101~200
    线程2在查询当前表中的前100条数据时得到的是ID 201~300
    ...如果不能用锁,有什么其他好的解决方案吗?