可以考虑用这种查询,分批得到纪录集。这样就可以多个线程里面同时取得多个记录集了 n代表你一次想取多少了,按你说的应该1000。m代表这是取第几批,就是你想取第几个1000。开多个线程传不同的n m过去就可以了 select top n * from DBTABLE where SELECT_KEY = 'key' and DBTABLE_ID not in ( select top n*m DBTABLE_ID from DBTABLE where SELECT_KEY = 'key' order by DBTABLE_ID) order by DBTABLE_ID
n代表你一次想取多少了,按你说的应该1000。m代表这是取第几批,就是你想取第几个1000。开多个线程传不同的n m过去就可以了 select top n *
from DBTABLE
where SELECT_KEY = 'key'
and DBTABLE_ID not in (
select top n*m DBTABLE_ID
from DBTABLE
where SELECT_KEY = 'key'
order by DBTABLE_ID)
order by DBTABLE_ID
和bluesmile979(笑着)说的应该差不多,
应该注意那些问题,因为没做过,不好说,
我想主要是多线程的协调以及分解组装数据吧
但是觉得没有必要,且存在一定的隐患
因为如果数据很多的话,用户也不可能一下子看完,
这样一次性全取过来,等到用户看到后面的数据时,
可能此时的数据已经被修改了
还不如采用批量查询的方式,
最起码可以保证每次取到的数据是最新的