| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1929 人关注过本帖
标题:select 比 copy to 速度快的不止一点点呀!
只看楼主 加入收藏
hyswcyh01
Rank: 2
等 级:论坛游民
帖 子:64
专家分:47
注 册:2016-7-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
select 比 copy to 速度快的不止一点点呀!
如题,同样的文件,同样数据要求,结果对比速度,select还是比copy to 快出很多。而且数据量越大体现的越明显!
不知道各位大侠,在使用过程中,还有没有其他更快些的方法?
搜索更多相关主题的帖子: 而且 
2016-08-14 10:54
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9807
专家分:26967
注 册:2012-2-5
收藏
得分:0 
未必,看是什么情况。
要用实例说话

坚守VFP最后的阵地
2016-08-14 11:08
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
楼主 用例子说话
2016-08-14 11:25
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10551
专家分:42996
注 册:2014-5-20
收藏
得分:10 
此时是否 select 是对内存操作而 copy to 是对磁盘操作?是的话 select 优势就很明显。
2016-08-14 15:34
hyswcyh01
Rank: 2
等 级:论坛游民
帖 子:64
专家分:47
注 册:2016-7-17
收藏
得分:0 
程序代码:
clear
oldsec=SECONDS( )
use sysxsdatol
copy to aa.dbf
use
? 'copy to 用时:'+alltrim(str((SECONDS( )-oldsec)*1000))+'毫秒'
oldsec=SECONDS( )
SELECT * FROM sysxsdatol INTO TABLE ab
use
sele sysxsdatol
use
? 'select用时:'+alltrim(str((SECONDS( )-oldsec)*1000))+'毫秒'

sysxsdatol中有50000多条记录,每条记录有30个字段,执行结果差将近1秒钟。
同样是对磁盘操作,相差还算是不少的。

[此贴子已经被作者于2016-8-14 15:42编辑过]

2016-08-14 15:36
hyswcyh01
Rank: 2
等 级:论坛游民
帖 子:64
专家分:47
注 册:2016-7-17
收藏
得分:0 
回复 4楼 吹水佬
如何才能对内存操作?
2016-08-14 15:41
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
如果没有限制条件的,不要打开表,再复制,试试看这样子:

COPY FILE sysxsdatol TO aa.dbf

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-08-14 16:13
hyswcyh01
Rank: 2
等 级:论坛游民
帖 子:64
专家分:47
注 册:2016-7-17
收藏
得分:0 
以下是引用aaaaaa在2016-8-14 16:13:31的发言:

如果没有限制条件的,不要打开表,再复制,试试看这样子:

COPY FILE sysxsdatol TO aa.dbf


这个是比较快,加通配符后更方便。但需要注意fpt备注文件。我做数据备份时就用这个,直接复制文件,而不是打开后再复制。
只有个别没有条件,绝大部分都是有条件的。这只是做测试用代码。

[此贴子已经被作者于2016-8-14 18:05编辑过]

2016-08-14 18:02
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:10 
备注文件:
COPY FILE sysxsdatol.fpt TO aa.fpt

索引文件:
COPY FILE sysxsdatol.cdx TO aa.cdx

Select 的复制是没有 fpt/cdx 文件的,Select 的快速复制的优势是游标 Cursor,或者具有过滤或条件的复制,其速度也许快一点。但也不是绝对的。


民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-08-14 20:09
快速回复:select 比 copy to 速度快的不止一点点呀!
数据加载中...
 
   



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

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