| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2231 人关注过本帖
标题:vf表通过筛选set filter 后,多人读写速度慢,一人读写很快,谁能告诉我这是 ...
只看楼主 加入收藏
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:766
专家分:2517
注 册:2011-5-8
收藏
得分:0 
用其它数据库做后台(SQL、oracle等),用远程参数视图调用数据。用DBF多用户操作速度不可能快。

dBase有人接盘了。
2022-06-02 19:50
my2318
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:14
帖 子:289
专家分:640
注 册:2014-3-18
收藏
得分:3 
用sql数据库,用sql每次读符合要求的记录到临时表做数据源,用sql每次更新或插入一条记录,这样就会快些
2022-06-02 22:23
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
回复 10楼 wabc327
代码有点复杂,难理出思路,可否将问题精简些。
问题是多用户使用 set filter 操作表问题,用个简单示例代码测试一下就清楚吧。
问题首先要说清楚多用户运行环境,再就是使用 set filter 操作表的过程,用简单读写几条代码就可以。
2022-06-03 15:51
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1094
专家分:2693
注 册:2015-12-30
收藏
得分:3 
* 多用户环境下,数据表是共享方式打开,仅当增删改时对表加锁,然后马上处理,处理过程中不能有交互,让过程占用时间尽量短,然后解锁
* 数据记录数多时(个人感觉上万条为多),每次更新数据时如果需要重新过滤(或索引)时可见右上角有系统提示,这时效率就会降低
* 大数据量建议后台使用SQLserver或MYSQL等数据库,DBF管理大数据量还是有点勉强
2022-06-03 16:11
zhken
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:285
专家分:620
注 册:2012-9-21
收藏
得分:0 
楼上说的没错。如果有些时效性不是很强的话,可以将在本地放一个副本作为查询,如有修改删除再将这一小部分更新到远程库里去,设置此记录为可更新记录,其它用户操作数据库时提示有数据可更新。也就是说将远程数据库在本地做一个副本,本地对副本操作时检查有无记录可更新。在本地使用SET FILTER ,十万级别的都不会慢
2022-06-03 21:33
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
回复 9楼 wabc327
您这是纯VFP的代码,FoxBASE数据库原来是单机使用的,对多用户共享数据有先天的缺陷,访问的用户一多,读写的效率便显著下降,这是避免不了的。后来借鉴和引进了SQL技术,通过select for...命令优化了对数据库读写操作才有所改善,但要彻底解决问题则应该考虑换用SQL server数据库。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2022-06-04 10:16
talkrobin
Rank: 2
等 级:论坛游民
帖 子:38
专家分:19
注 册:2022-5-15
收藏
得分:3 
小白的我,继续多看看,多学学
2022-06-05 11:29
qq1551855988
Rank: 2
等 级:论坛游民
威 望:1
帖 子:4
专家分:20
注 册:2021-4-17
收藏
得分:3 
一般,如果后台是SQLSEVER数据库,思路都是:把某操作员所需数据SELECT到cursor中,然后,修改或新增或删除,然后update到数据库中。

虽然你是用dbf做数据库,思路也可以这样
2022-06-06 12:03
wabc327
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2021-2-4
收藏
得分:0 
多用户下grid我使用的是行缓冲,如果改用表缓冲是否会有所改善呢,另外insert into在有grid同时显示的情况下,用缓冲么,是先用insert into再用=tableupdate()么,还是不用缓冲直接插入就可以,或者是先插入后随后跟一个=tableupdate()呢,有点迷糊啊?????请各位老师帮忙解答一下!!!
2022-06-07 09:40
快速回复:vf表通过筛选set filter 后,多人读写速度慢,一人读写很快,谁能告诉 ...
数据加载中...
 
   



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

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