sql 处理access数据库问题, 急!!!!!

fzx4936 2013-06-07 07:10:47
加精
表tb1有15万记录,表tb2有2万多记录,要从tb1中删除字段a1不包含在tb2的记录。
oCn.execute "delete from tb1 where tb1.a1 not in(select a1 from tb2)"
经测试 当tb1 tb2 只有少量数据时没问题,但在真实数据处理时,程序就卡死了(是真的卡死了 ,过了很长时间tb1的记录数都没变化)。

对于这中情况怎么解决最好?
按tb2中的记录逐条在tb1中处理,代码可以持续运行,但处理速度极慢,无法忍受
如果把tb2中的记录分成若干段与tb1一起处理应该是个不错的选择,想请大家帮着看看多少条记录分成一段好?
或着还有什么更好的办法?

非常急 先谢谢大家了 !
...全文
3043 72 打赏 收藏 转发到动态 举报
写回复
用AI写文章
72 条回复
切换为时间正序
请发表友善的回复…
发表回复
greatbody 2015-01-11
  • 打赏
  • 举报
回复
引用 11 楼 bcrun 的回复:
当然,这还和你记录的大小有关。另外这种需求,可能很多人直接建个表,把要保留的记录insert过去,再把原表Drop掉,再把新表名字改回去。
我赞成这个想法。因为相同的数据是你需要保存的。最好就是将相同的数据插入到一个临时表,然后将原表的数据清空,然后将临时表的数据再导回。
hua1123 2014-10-16
  • 打赏
  • 举报
回复
学习学习
toppers 2013-07-13
  • 打赏
  • 举报
回复
sqlite会不会强些?
delphi20007 2013-07-08
  • 打赏
  • 举报
回复
学习中,谢谢赐教
San_Wolf 2013-06-27
  • 打赏
  • 举报
回复
学习了……索引原来这么有效……
leolee82 2013-06-21
  • 打赏
  • 举报
回复
用firebird吧 免费又省资源
jntcf 2013-06-20
  • 打赏
  • 举报
回复
学习
jntcf 2013-06-20
  • 打赏
  • 举报
回复
很少用ACCESS,+关注
醉蝶-晚香玉 2013-06-19
  • 打赏
  • 举报
回复
菜鸟从此路过,看着大家的评论,偶学到了好多知识哇。哎哎,要好好努力
XIOOU 2013-06-18
  • 打赏
  • 举报
回复
件安装需重新启动机器,然而启动机器后又提示重新启动机器,然而反复重新启动仍然出现这样的提示,导致软件不能安装。现在给出解决方案:
u011119146 2013-06-18
  • 打赏
  • 举报
回复
tongxue zhong .
newnazi 2013-06-18
  • 打赏
  • 举报
回复
不能用SQL 可以考虑用MySql ,降低些速度兴许会好些
befree 2013-06-18
  • 打赏
  • 举报
回复
引用 33 楼 di74jun 的回复:
表tb1有15万记录,表tb2有2万多记录,要从tb1中删除字段a1不包含在tb2的记录。 oCn.execute "delete from tb1 where tb1.a1 not in(select a1 from tb2)" 经测试 当tb1 tb2 只有少量数据时没问题,但在真实数据处理时,程序就卡死了(是真的卡死了 ,过了很长时间tb1的记录数都没变化)。 因为是access数据库(CTRL+C,CTRL+V就完成了数据库备份), 所以可以换个思路 新建1个 tb3 insert into tb3 select tb1.* from tb1,tb2 where tb1.你的key=tb2.你的key 看看这样速度如何
就是这种做法。
befree 2013-06-18
  • 打赏
  • 举报
回复
引用 42 楼 Sa_1GHz 的回复:
用exists
delete from tb1 where not exists (select 1 from tb2 where tb2.a1=tb1.a1)
区别不大,access和ms sql没有可比性。
befree 2013-06-18
  • 打赏
  • 举报
回复
access 的not in非常慢的。 解决方法其实非常简单:copy 到一个新表,用条件,那不等于delete not in了? 然后再删除原来表,用新表替换,access最合适这个方法了。
u011094823 2013-06-17
  • 打赏
  • 举报
回复
学习了 生生世世
u011094823 2013-06-17
  • 打赏
  • 举报
回复
漂亮!!!!!!!!!!!!!!!!!1
yyenergycao 2013-06-17
  • 打赏
  • 举报
回复
这个问题还没有遇到过
mbugaifc 2013-06-17
  • 打赏
  • 举报
回复
polaris-sida 2013-06-16
  • 打赏
  • 举报
回复
为何不能改用server sql
加载更多回复(43)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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