关于sql语句like查询速度问题

peng6674166 2014-11-17 02:22:48
我现在做的一个功能是把一个excel里面的电话号码与数据库里面的like匹配,去掉重复的。
现在我的做法是先读取excle,然后for循环一个一个的like查询数据库表,数据库里面有几十万数据,这样的话速度很慢,基本循环2万条数据要半个小时,有没有什么办法提高效率!
...全文
395 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
把数据库和Exl的数据都读取到Tab中进行比较,然后把要插入的数据放到新建的Tab中,对比完成后直接插入数据库 感觉数据加载到内存里 操作起来应该快把
青木龙殿下 2014-11-17
  • 打赏
  • 举报
回复
先把EXCEL里面的号码读出来,循环读取的时候,拼装一下字符串,用,号隔开,然后读取完了,数据库里用一个in 不就搞定了?1秒钟的事情。
江南小鱼 2014-11-17
  • 打赏
  • 举报
回复
读取excel一条条循环,这个效率太低了。 解析出excel,使用SqlBulkCopy批量插入数据库表(比如说表名是:ExcelData),然后拿ExcelData和数据库表做对比处理 处理完成后,Delete掉ExcelData表的数据 注意: 为了能够多个人进行这个操作,创建的ExcelData表,需要有一个字段唯一标示数据来源(比如IP、或者MAC地址) 处理或者删除的时候,只针对自己批量插入的数据
peng6674166 2014-11-17
  • 打赏
  • 举报
回复
引用 楼主 peng6674166 的回复:
我现在做的一个功能是把一个excel里面的电话号码与数据库里面的like匹配,去掉重复的。 现在我的做法是先读取excle,然后for循环一个一个的like查询数据库表,数据库里面有几十万数据,这样的话速度很慢,基本循环2万条数据要半个小时,有没有什么办法提高效率!
1.因为数据库的电话有可能是加0的或后面其他乱七八糟的字符的 2.这个数据库不是我弄的,也就是说我不能去修改他,只有读取的权限 3.聚合函数可以像like一样吗?
走着看世界 2014-11-17
  • 打赏
  • 举报
回复
1:去重复怎么用“like”呢,不是“=”吗, 2:创建临时表A存放excel数据,和现有的数据匹配 3:可以聚合函数查询重复数据;

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧