A、B两个Oracle库,其中都有t表,tA中有580多万数据,每一条都要要经过处理后导入tB,A、B两张都是业务表,不能锁表超过1分钟,而数据处理逻辑比较复杂,只能通过客户端软件进行处理,目前的解决方案是通过分页查询,将tA中的数据一部分一部分的读出,由客户端模块处理后,再写入tB。由于tA表中没有主键,因此使用如下分页逻辑
RI=RoWID  'Oracle内置的RowID
Sql=Select * From tA Where RowID>=RI And RowNum<=1000
在获取到数据后再更新RI,设为当前数据页中的最大值这样的做法在开始的时候执行速度比较快,每次查询时间都在2秒以下,但是到了50万以后,查询时间开始不断增大,尤其是300万以后,每次查询时间都大于300秒,执行效率就很低了,由于数据读取模块必须进行线程同步,所以开1个线程和开8个线程没什么区别,现在我已经不知道该怎么办了,太慢,那位能指教一下,或者修改一下这个分页逻辑?