批量查询数据库是否存在某个数据

批量查询数据库是否存在某个数据,第1张

1.通常遇到这种问题,最初步的想法就是循环,读取数据库判断

2.更进一步,由于循环访问数据库导致性能十分低下,是否可以先取出全集,到内存中进行比较,这里需要提醒的是使用HashSet或Dictionary判断是否存在比List性能要高

3.但当全集数据量极大的时候,这种做法可能会导致内存不足,接下来考虑是否能缩小提取的范围

4.提取原始数据时,直接只提取ID在需要比较的列表中,即selectidfromtablewhereidin(需要判断的id结果集),单数据提取到HashSet,kv的提取到Dictionary

5.提取出in条件的结果集后,与待比较的ID进行对比,取出的结果集中存在的ID,即是已存在的信息,不存在的,就是新增的ID

想更快更准确的替换,还是得用到SQL执行语句。方法之一:1 打开你的数据库MDB2 在数据库窗口中,点击“查询”,或在“视图”菜单中选择“数据库对象”->“查询”3 点击数据库窗口中的“新建”按钮4 点击“确定”,关闭“显示表”窗口5 点击工具栏左上侧的“SQL”,或在“视图”菜单中选择“SQL 视图”6 删掉所有的内容7 直接输入SQL语句(替换表as_info中字段n_content 中的""分号为空为例):update as_info SET n_content = replace(n_content,"","") 该方法对ACCESS 2000库无效。8 点击工具栏上“查询”-->“运行”即可。方法二:set Rs = Server.CreateObject("ADODB.Recordset") sql1="select n_content from as_info" rs.open sql1,conn,1,3 do while not rs.eof n_content=replace(rs("n_content"),"","") rs("n_content")=n_content rs.update rs.movenext loop rs.close set rs=nothing 方法三:批量替换工具点击下载此文件

SQL 关键索引,在大表上创建索引

千万记录的表不算大,只要索引创建对了,性能可以正常提升,

还有一种就是比较偏的方式:先把需要批量的数据库插入临时表

这个可以防止频繁对表进行查询 *** 作,

SQL 如下:select * into #Temp from Table

后面就只需要对临时表 *** 作,不允许主表性能。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6746282.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存