毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 数据库 >> 正文

oracle in 内部有几千条记录速度很慢

更新时间:2014-5-26:  来源:毕业论文

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

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

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

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

现在的问题是:

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

求助:如何查会快一些呢?
试试将身份证号记录插入到一个临时表中,再与数据表关联查询 建一个表,把这3000条身份证记录插进去,和数据表关联查询,看看效率能提升多少
数据表的身份证号字段上要有一个索引 with t as(     select '身份证1' as sfz from dual union    select '身份证2' as sfz from dual union    select '身份证2' as sfz from dual ) SELECT DGV.* FROM datagridview DGV WHERE EXISTS( SELECT 1 FROM T WHERE T.SFZ = DGV.SFZ )   以上. WITH T 构造的结果集,可以动态扩展例如:     select '身份证1' as sfz from dual union    select '身份证2' from dual union    select '身份证3' from dual union    select '身份证4' from dual union    select '身份证5' from dual union    select '身份证6' from dual

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。