如何分段加载Sybase表里面的大量数据,sql如何写
比如sybase表里面的数据有1000条(这里打个比方,实际可能是100w,或者1000w),一次性全部查询出来量太大程序内存扛不住,只能分段多线程查询,由于Sybase没有rownum
所以根据主键ID分10段如下,我的期望是每一段里面的数据比较平均,这样量不会很大
id=
1~100
101~200
201~300
...
901~1000
问题是如果ID是numeric就好办了,直接 id>=1 and id<=10 ,id加上索引,查询速度很快的
但是现在表ID是字符型的,我试过 convert(numeric,id)>=1 这种虽然能走索引,但是时间还是消耗的非常多,所以不行
我使用 id >= '1' 这种是可以走索引的,而且速度挺快,但是使用 id>'1'这种字符串比较是有bug的
因为字符串比较,是从第一位开始一位一位的往后比较的,如1~100这一段里面,基本就查询不到,这样就会导致我分段的每一段里面数据不平均,从而有一段的数据非常大,导致程序内存溢出
请问有没有什么办法,或者算法,能让我平均的分段加载这种大量表的数据