公司员工数据比对,程序实现
情景:
有一个员工数据的视图,里面有800多万条数据,视图中有姓名,身份证号,性别等信息,其中身份证可能有重复。
有一个webservice接口,是公安数据,通过传入视图中身份证字段进行查询,每次传入一个身份号,如果有记录,则并返回姓名,身份证,出生年月等字段。
问题:
需要先查询员工视图,获得身份号码,才能调用webservice接口进行比对,由于员工视图数据量过大,没有自增ID,如果
一下子查询全部放到内存中肯定不信,怎样比对才能做到高效?如何做到分批查询和比对?
情景:
有一个员工数据的视图,里面有800多万条数据,视图中有姓名,身份证号,性别等信息,其中身份证可能有重复。
有一个webservice接口,是公安数据,通过传入视图中身份证字段进行查询,每次传入一个身份号,如果有记录,则并返回姓名,身份证,出生年月等字段。
问题:
需要先查询员工视图,获得身份号码,才能调用webservice接口进行比对,由于员工视图数据量过大,没有自增ID,如果
一下子查询全部放到内存中肯定不信,怎样比对才能做到高效?如何做到分批查询和比对?
select * from (SELECT 身份证,rownum rn FROM TABLE) where rn > :(i - 1) * 100 and rn <= :i * 100
其中i是你的批次号,可以做个循环来分批进行,防止断线等异常还可以做个记录当前批次和恢复的处理。
每次只能传一个身份证号码比对,怎么快啊?这个快不起来的。
你通过webservice发一个身份证号过去,公安是要对这个身份证号要进行比对,他要处理时间,
而且要知道这个是通过webservice走的,别以为是通过dblink过去的
剩下的不重号的,将这些人的身份证号分段,走webservice,多开几个线程请求,这要看对方的请求处理的能力了,
你前面说了,请求是每次只能发一个身份证号