瘦马 2014-05-20 03:07 采纳率: 0%
浏览 3231

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

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

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

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

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

现在的问题是:

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

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

  • 写回答

1条回答 默认 最新

  • ausky 2014-05-20 06:27
    关注

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

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

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

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

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

    评论

报告相同问题?

悬赏问题

  • ¥15 写uniapp时遇到的问题
  • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
  • ¥15 找一个网络防御专家,外包的
  • ¥100 能不能让两张不同的图片md5值一样,(有尝)
  • ¥15 informer代码训练自己的数据集,改参数怎么改
  • ¥15 请看一下,学校实验要求,我需要具体代码
  • ¥50 pc微信3.6.0.18不能登陆 有偿解决问题
  • ¥20 MATLAB绘制两隐函数曲面的交线
  • ¥15 求TYPCE母转母转接头24PIN线路板图
  • ¥100 国外网络搭建,有偿交流