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

问题描述

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

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

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

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

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

现在的问题是:

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

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

解决方案

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

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

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

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

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

时间: 2024-10-31 20:01:32

winform-求解决方案:oracle in 内部有几千条记录,如何提高查询效率的相关文章

Oracle查询指定索引提高查询效率

Oracle查询指定索引提高查询效率 一个1600万数据表--短信上行表TBL_SMS_MO结构:CREATE TABLE TBL_SMS_MO( SMS_ID NUMBER, MO_ID VARCHAR2(50), MOBILE VARCHAR2(11), SPNUMBER VARCHAR2(20), MESSAGE VARCHAR2(150), TRADE_CODE VARCHAR2(20), LINK_ID VARCHAR2(50), GATEWAY_ID NUMBER, GATEWAY_

oracle和sql server取第一条记录的区别以及rownum详解

我们知道学生可能有重名的情况,那么当重名的时候假设只需要取得重名结果集中的第一条记录.   sql server:select top(1) num,Name from M_Student where name = 'xy'   Oracle:select num,Name from M_Student where name = 'xy' and rownum <= 1 对于rownum在oracle的使用的时候,有几点需要注意:   (1) rownum 对于等于某值的查询条件 如果希望找到学

使用Bulk Collect提高Oracle查询效率

http://carllgc.blog.ccidnet.com/blog-htm-do-showone-itemid-25946.html 使用Bulk Collect提高Oracle查询效率 Oracle8i中首次引入了Bulk Collect特性,该特性可以让我们在PL/SQL中能使用批查询,批查询在某些情况下能显著提高查询效率.现在,我们对该特性进行一些简单的测试和分析. 1. 首先,我们创建一个表,并插入100000条记录在SQL/Plus中执行下列脚本: drop table empl

用sqoop将oracle中的表导入hadoop出现如图问题 求解决方案!

问题描述 用sqoop将oracle中的表导入hadoop出现如图问题 求解决方案! 解决方案 http://www.linuxidc.com/Linux/2014-02/96678.htm 照这个链接再搞一下 解决方案二: 我当初就是照他的方案弄得 不知道为什么连接不上去

同IP下,某软件只允许运行一个。这是如何实现的,求解决方案

问题描述 同IP下,某软件只允许运行一个.这是如何实现的,求解决方案 解决方案 解决方案二:服务器判断限制下解决方案三:没有服务器,可以用socket广播,看同一个地址有没有程序在运行解决方案四:版主说的对,有通信吧,由服务器控制解决方案五:把楼上的细化一下就是:A.每几分钟,向你控制下的服务器端发一个请求.服务器端记录请求的IP和MAC地址.当发现数据库中有相同IP,并且登录时间过段,而MAC地址不同,则认为同一局域网有其它程序运行.B.程序开启一个特定非常见端口,新启动时扫描局域网中是否有其

oracle数据库-跪求:oracle如何在数据分组后更新(update)?求大神指导啊~~~万分感谢

问题描述 跪求:oracle如何在数据分组后更新(update)?求大神指导啊~~~万分感谢 如题:org_info 表内容如下: ID NAME TEL ADDR OP_TYPE OCCUR_DATE 1001 aaa 888888 ppppppp 2014-07-23 1001 aaa 999999 ppppppp 2011-03-19 1002 bbb 666666 yyyyyyy 2014-09-15 1002 ipow 221 fghfghfh 2009-07-08 1002 ipow

Oracle恢复内部原理简介

Oracle 7 v7.2 恢复大纲 作者:Andrea Borr  & Bill Bridge 版本:1                May 3, 1995 本文概述了Oracle 7.2版本如何进行数据库恢复.本文读者应当熟悉Oracle 7.2的管理指南.相比于管理指南,本文目的是为了更详细描述Oracle恢复用到的算法.数据结构以及一些技术细节. 一.简介 Oracle数据库提供了下列两类失败模式下的数据库恢复: 1.  实例失败:丢失了Oracle数据缓存中的数据或者内存中的数据 2

c++-同时使用STLport和boost库时编译通过,但链接失败,求解决方案,急!!!

问题描述 同时使用STLport和boost库时编译通过,但链接失败,求解决方案,急!!! 具体问题是这样的: 我用的是vs2008,把STLport和boost库都加入项目,编译时报错:boostconfigauto_link.hpp(204): fatal error C1189: #error : "Build options aren't compatible with pre-built libraries" 解决方法是在 项目属性->c/c++->命令行 添加

兼容-ie8下canvas.getContext()方法无效,求解决方案

问题描述 ie8下canvas.getContext()方法无效,求解决方案 canvas.getContext()是绘制一个绘画环境,目前只支持2d属性 网上也看过excanvas.js的方法,但是报错 //未知的运行时错误--excanvas.js 行144,字符9: el.innerHTML = ''; //意外地调用了方法或属性访问.--excanvas.js 行311,字符5: surfaceElement.appendChild(el); 解决方案 这个好像本来就不支持 解决方案二: