2 hwhtj hwhtj 于 2014.05.20 11:07 提问

求解决方案:oracle in 内部有几千条记录,如何提高查询效率

有一个winform程序
一个只有一列的datagridview,是几千条(也有可能是几万条)身份证号记录(此数据是从excel导入的)

数据库中有10多万条客户信息(如姓名、身份证、联系方式等)

然后我想实现的功能是,根据datagridview内的身份证数据,从数据中查出该身份证对应的相关信息,并在另一个datagridview中展现出来。

我现在使用的方法是 select * where sfzh in (),的办法,(注,in 函数不能超过1000条的问题已经解决,使用 拼接or in ()的方法

现在的问题是:

程序运行很慢,查询3000条数据,要10多分钟。

求助:如何查会快一些呢?

1个回答

Ouvidia
Ouvidia   2014.05.20 14:27

我觉得 in 当数据量大了是会变成非常慢的!

你现在的速度太慢了, 3000条数据 10分钟!

我有2个比较笨的办法了,

第一 我觉得 or in 的速度也不会太快吧 还不如in 里面少一点数据 然后多线程 或者多次去取!

第二 建立一个临时表 然后 把3000条数据插入 然后再用 exists 进行关联查询 我觉得这个1分钟左右一定可以完成吧!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!