我明显感觉到,保存或同步时,客户端用户数越多,效率就越低!
现在只有我一个人在用,效率很高,两秒种就完成了 保存--从三个表的10多万记录中SQL查询我想要的记录--填充到外部数据源中--进行一列的事件运算--再保存! 代码大约有一百多行。
但是如果有5个用户,那得15秒以上!
不知大家有没有这个经验?
我的电脑
此主题相关图片如下:未命名.jpg
5个人同时保存?
和后台处理能力无关,不过除非非常凑巧,否则不会5个人同时保存的。
另:效率和系统设计的合理性关系极大。
5人不会同时保存的。
只是有5个人在各做各的记录时,有1人在保存,就慢多了。
记得上次讨论过在网络运用时如何避免同时保存的:
1、在外部数据库中指定一个表,只有一条记录,一个字段,专门记录有无用户正在保存
2、用sqL查询中的UPDATA,来快速赋值。
3、用这个值来判断当前是否有人正在保存或运算填充。
我的服务器是新买的,3.5万,里面光散热的电扇就有12个,只带了7个客户端,性能应是不错的。
我看还是保存(同步)时的效率问题,多几个人用明显是慢了几倍!
[此贴子已经被作者于2009-4-28 22:56:06编辑过]
呵呵,Foxtable是断开运行的,运行的过程中和服务器没有任何关系,你即使关掉服务器也没有影响,因为foxtable只有提取和保存数据的时候才连接服务器。
所以一个人保存,其他人编辑,导致变慢是不应该的,应该多分析一下设计思路问题。
实在不明白为什么这样啊!
这不是在找原因吗?
照老大这样说,一个人保存时,与其他人没有关系的,只有自己对服务器的联系。
可是人一多,速度就慢了,这与设计有关吗?不管我怎样设计,保存时也只是我与服务器联系,没有其他的事啊?
我想是不是“从三个表的10多万记录中SQL查询我想要的记录--填充到外部数据源中” 这一段效率不高?
可能你代码设计不当,例如一进入某个单元格或者数输入框,就从后台提取数据生成列表项目。
这样输入的过程中,就不停地消耗服务器资源,自然人越多,就越慢。
楼主那么大的内存,应该可以建几台虚拟机,自成网络来试行自己的fox系统。听说虚拟机可以的。
主表中是有一个字段设置了列表项目,但那不是在事件中设置的,我是在列属性中设置的,没有用到代码。
在列属性中设置的列表项目,是在加载表还是在重新打开表时执行呢?
不管怎样,都与编辑单元格的事件无关的啊!
这个不会的,这只是在打开项目的时候执行。
你进行普通输入、查询、统计等日常操作的时候,断开服务器,如果某个操作出错,就说明执行这个操作要连接服务器,检查相关代码即可。
最好全面清查代码。