| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2291 人关注过本帖
标题:请教一个问题,需要比较2个表中不同的记录,表过大怎么处理呢?
只看楼主 加入收藏
hjlali
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2008-12-23
结帖率:100%
收藏
 问题点数:0 回复次数:31 
请教一个问题,需要比较2个表中不同的记录,表过大怎么处理呢?
比较用的语句是:
SELECT * from ys1 where ALLTRIM(lxfs) NOT in  (select ALLTRIM(lxfs) from fs1 )

说明:因为ys1和fs1这2个表的数据都已经超过了26万条,处理起来非常非常慢,一晚上都比较不完,请问有什么更好的办法吗?

[此贴子已经被作者于2021-8-20 10:27编辑过]

搜索更多相关主题的帖子: 过大 比较 处理 记录 不同 
2021-08-20 10:24
XUFN
Rank: 2
等 级:论坛游民
威 望:4
帖 子:37
专家分:38
注 册:2009-1-18
收藏
得分:0 
分二段试试
SELECT ALLTRIM(lxfs) AS MY_KEY from fs1 DIST NOCO INTO TABLE TEMP_KEY
SELECT * FROM ys1 where ALLTRIM(lxfs) NOT in(SELECT MY_KEY FROM TEMP_KEY)   
2021-08-20 10:56
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10608
专家分:43190
注 册:2014-5-20
收藏
得分:0 
26万条记录不算多吧,整个文件有多大?
2021-08-20 11:37
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用hjlali在2021-8-20 10:24:54的发言:

比较用的语句是:
SELECT * from ys1 where ALLTRIM(lxfs) NOT in  (select ALLTRIM(lxfs) from fs1 )
说明:因为ys1和fs1这2个表的数据都已经超过了26万条,处理起来非常非常慢,一晚上都比较不完,请问有什么更好的办法吗?

你表有多少字段,是不是电脑原因,换电脑看看,同时,只用少量字段来测试,看是不是,时间少了。

SELECT ALLTRIM(lxfs) lxfs from ys1 where lxfs NOT in  (select ALLTRIM(lxfs) lxfs from fs1 )
2021-08-20 12:24
hjlali
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2008-12-23
收藏
得分:0 
以下是引用mywisdom88在2021-8-20 12:24:33的发言:


你表有多少字段,是不是电脑原因,换电脑看看,同时,只用少量字段来测试,看是不是,时间少了。

SELECT ALLTRIM(lxfs) lxfs from ys1 where lxfs NOT in  (select ALLTRIM(lxfs) lxfs from fs1 )

字段不多,一个fs表包含(lxfs,zt)两个字段,大小9M多,ys表包括(lxfs,xm,dw)三个字段,大小46M多,运行一次根本看不到进度。
图片附件: 游客没有浏览图片的权限,请 登录注册

喜欢VFP,就要学懂弄通!
2021-08-20 12:45
hjlali
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2008-12-23
收藏
得分:0 
以下是引用吹水佬在2021-8-20 11:37:13的发言:

26万条记录不算多吧,整个文件有多大?

两个表,一个9M多,一个46M多

喜欢VFP,就要学懂弄通!
2021-08-20 12:57
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2215
专家分:3882
注 册:2007-4-27
收藏
得分:0 
换好一点的电脑吧!

我的数据量比你大,字段数比你多,一般都是几分钟的事儿

只求每天有一丁点儿的进步就可以了
2021-08-20 13:00
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9844
专家分:27213
注 册:2012-2-5
收藏
得分:0 
用数据说话

坚守VFP最后的阵地
2021-08-20 13:09
hjlali
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2008-12-23
收藏
得分:0 
以下是引用XUFN在2021-8-20 10:56:40的发言:

分二段试试
SELECT ALLTRIM(lxfs) AS MY_KEY from fs1 DIST NOCO INTO TABLE TEMP_KEY
SELECT * FROM ys1 where ALLTRIM(lxfs) NOT in(SELECT MY_KEY FROM TEMP_KEY)   

[b]你这个方法可行,速度比我这个快太多了。查出来7条lxfs(联系方式)不同的记录,不过语句还是有点请教的地方:
dist noco 这个语句是什么意思?求教下!


[color=#000066][此贴子已经被作者于2021-8-20 19:11编辑过]


喜欢VFP,就要学懂弄通!
2021-08-20 13:17
hjlali
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2008-12-23
收藏
得分:0 
以下是引用sdta在2021-8-20 13:09:35的发言:

用数据说话

数据涉及到敏感信息,不好提供,不好意思。意思我应该表述的比较清楚了

喜欢VFP,就要学懂弄通!
2021-08-20 13:31
快速回复:请教一个问题,需要比较2个表中不同的记录,表过大怎么处理呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015211 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved