标题:win7旗舰系统下,跑VFP很慢,请教。
只看楼主
oogami
Rank: 2
等 级:论坛游民
帖 子:62
专家分:16
注 册:2013-1-29
得分:0 
回复 8楼 taifu945
哈哈,公司开业以来所有的保单数据都在,180多万条数据,每个数据有30个左右的字段
2013-03-05 11:23
zyz995462
Rank: 2
等 级:论坛游民
帖 子:22
专家分:20
注 册:2004-12-5
得分:0 
以下是引用oogami在2013-3-5 11:23:09的发言:

哈哈,公司开业以来所有的保单数据都在,180多万条数据,每个数据有30个左右的字段
不要把所有鸡蛋放在一个篮子里。你首先要为你的1G的DBF买份保单,呵呵
2013-03-05 15:54
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:0 
以下是引用oogami在2013-3-5 11:23:09的发言:

哈哈,公司开业以来所有的保单数据都在,180多万条数据,每个数据有30个左右的字段
180多万条记录对VFP来说是小意思。我记得读书那会儿有本教材上写着FoxPro 2.5可以处理单个库(表)文件的记录数是10亿。注释:FoxPro 2.5那会儿是把表文件叫作“数据库”的。
2013-03-05 16:06
oogami
Rank: 2
等 级:论坛游民
帖 子:62
专家分:16
注 册:2013-1-29
得分:0 
回复 12楼 zyz995462
兄台说的有理,我每次会存在两台电脑上,然后服务器里面也有相应的数据。
2013-03-05 19:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
1G的数据量,用SQL指令,内存需求量会暴涨数倍,你2G内存当然不够,就拿硬盘充数,不慢才怪。简单的查询还好,分组、联合之类,嘿嘿~

授人以渔,不授人以鱼。
2013-03-05 20:52
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
得分:0 
以下是引用TonyDeng在2013-3-5 20:52:16的发言:

1G的数据量,用SQL指令,内存需求量会暴涨数倍,你2G内存当然不够,就拿硬盘充数,不慢才怪。简单的查询还好,分组、联合之类,嘿嘿~
所以,我家里装了8G内存。但我不是为了VFP,是为了处理照片,哈哈。
2013-03-05 21:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
32位系统用不了4G内存,而VFP是32位软件,就算操作系统是64位的,VFP也用不了,它的极限内存容量就只有2G,何况他在2G的内存下运行64位系统,本身空余的物理内存就没多少,别说跑1G的SQL查询,就是多开几个软件也够呛。通常小数据量的查询,由于内存足够,用SQL不觉得有什么问题,但他那样庞大的数据量,内存还不够,SQL耗费资源太大的缺陷就显露无遗了。专业服务器上跑SQL Server,人家的测试结果是内存以256G来计算的。

授人以渔,不授人以鱼。
2013-03-05 21:36
oogami
Rank: 2
等 级:论坛游民
帖 子:62
专家分:16
注 册:2013-1-29
得分:0 
回复 15楼 TonyDeng
4G呢?我今天换了4G内存 ,但是没跑数据,呵呵
2013-03-05 23:11
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
32位的软件,进程内存空间逻辑上是4G,Windows规定系统用2G、进程本身用2G,所以进程的极限内存就等于是2G,这也是VFP数据文件的极限大小是2G的原因。Windows是64位,系统可以用大内存,但软件是32位的,它不能设计出访问大内存的指针地址,实际上就仍相当于在32位环境中使用。你装8G内存,32位的VFP也用不到。当然,4G的物理内存,空闲内存一定比现在的2G多,会缓解一点,但不会根除问题。这是SQL使用内存的方式决定的,它要做那么复杂的事,就是占大量的内存。其实要么你自己手动写查询,不用SQL,也会比这种情况下的SQL快(小数据量下SQL是省力一点),但要你多做点事而已。

SQL体系是假定内存足够大的算法,一旦要进入虚拟内存页交换的环境,它的效率就瞬间消失,使用的时候最好注意一下环境是否满足。而专门设计的算法,可以是针对具体环境的,当遇到类似这种环境无法满足的特殊情况,就要考虑清楚怎么实现了。人家SQL Server等大型数据库软件本身就有64位版本,运行在64位操作系统上,也有足够的物理内存,那样它的宣传数据当然很好了。不过现在你不是这样,而是在VFP下内置支持的SQL语法,它不是64位软件,注定不会有这样的可能,不能胡乱比较的,要么你把系统挂到SQL Server数据库中,用VFP纯做界面。

[ 本帖最后由 TonyDeng 于 2013-3-5 23:34 编辑 ]

授人以渔,不授人以鱼。
2013-03-05 23:20
oogami
Rank: 2
等 级:论坛游民
帖 子:62
专家分:16
注 册:2013-1-29
得分:0 
回复 19楼 TonyDeng
大哥你做什么工作的,专业程序员么,我好佩服你啊,啥都懂!

不过说实话您说的这些我基本都听不大懂,反正意思就是4G也不能根本上缓解问题。
再问个问题,我公司里面台式机,XP系统,3g内存跑VFP很顺畅,是不是因为win7x64对VFP支持不是很好的原因?

还有,您说的数据文件最多2G,是不是DBF文件2G就满了的意思?俺现在觉得,精算师就是个程序员,原理明白了,要用vb vfp等等软件编好多程序,唉

以后靠程序吃饭了,哈哈哈,请大侠多指导,我自己也会努力学的。

谢谢!
2013-03-06 00:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-399746-1-1.html




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

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