以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  打开狐表项目的速度,以及动态生成表、动态绑定表的问题?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=4197)

--  作者:cpayinyuan
--  发布时间:2009/9/3 10:46:00
--  打开狐表项目的速度,以及动态生成表、动态绑定表的问题?
  在FoxTable的帮助文件中,专门有"大容量数据的管理"一章,贺老师提供了数量据非常大时的加载方案.

  但经过我的测试,发现当一个项目中的表较多时,目前系统中的解决方案有明显缺陷。具体问题是,当一个项目中的表较多而且表结构较复杂时,即使我每个表都加载空表,打开项目时仍然非常慢!我的一个项目中有大概60个表,打开狐表需要20秒左右,但打开项目需要3分钟左右(所有表都加载空表)。打开项目的速度如何之慢,把我的用户快吓跑完了,即使没有吓跑的,使用起来也非常费劲,一般都是先双击狐表项目,然后泡一杯热茶或咖啡,等喝完了,项目也快启动完了。
     经过我的分析,估计是在打开项目时,即使每个表都打开空表,也要加载每个表的表结构、表事件等,所以当表较多时加载空表的速度也慢之又慢。我的建议是贺老师能否改进一下,在打开项目时,提供一个选项:不加载表结构、表事件(可能还有相关的其他东西)。然后,在项目中需要时,再加载这些表的表结构、表事件及相关东西。这样,可以,大大提高打开项目的速度,也不会影响项目中表的使用。
     希望贺老师能够重视此事!

    补充:虽然用SQLTable 似乎可以解决这个问题,可以在打开项目时不加载任何表,在窗口中再动态加载表。但有些情况下用SQlTable似乎也不太方便(用SQLTable时若表与表之间的计算关系复杂,需要在一个窗口中动态加载多个Table,再把这些Table隐藏起来,似乎也不太方便)。
[此贴子已经被作者于2009-9-7 9:20:52编辑过]

--  作者:yangming
--  发布时间:2009/9/3 10:49:00
--  
能否在打开时有的表不加,在做到某项操作,需要哪个表再加载哪个表呢?
--  作者:cpayinyuan
--  发布时间:2009/9/3 11:02:00
--  
以下是引用yangming在2009-9-3 10:49:00的发言:
能否在打开时有的表不加,在做到某项操作,需要哪个表再加载哪个表呢?

我也是这样意思。

几个月前,我一直建议在打开项目时允许不加载某个表,在需要时用代码动态加载某个表。贺老师当时一直说:打开项目时表A的加载条件为空=不加载表A,现在看来,这完全是两码事。


--  作者:yangming
--  发布时间:2009/9/3 11:17:00
--  

也许当时老版是这样的,现在新版又不一样了呢


--  作者:狐狸爸爸
--  发布时间:2009/9/3 11:29:00
--  

60个表,还有关联呢,这会产生多少个Table?

个人电脑而已,就是没有关联,加载60个表也是一个很差劲的设计,怨不得foxtable的。


--  作者:cpayinyuan
--  发布时间:2009/9/3 11:29:00
--  
以下是引用yangming在2009-9-3 11:17:00的发言:

也许当时老版是这样的,现在新版又不一样了呢

当时贺老师一直那样解释,我就认为:动态加载表(不是加载表的数据)估计是不好实现,现在在新版本中,在窗口中动态加载表都已经实现了,在项目中动态加载表应该也是很容易实现的。


--  作者:狐狸爸爸
--  发布时间:2009/9/3 11:31:00
--  

加载条件为False,只是不加载数据而已,谁说是不加载表啊。


--  作者:狐狸爸爸
--  发布时间:2009/9/3 11:34:00
--  
别说60个表,在电脑开60个网页,看看后果会怎样。




--  作者:天行健软件工作室
--  发布时间:2009/9/3 11:41:00
--  
刚学,还看不懂,希望我不会遇到这种问题。呵呵
--  作者:cpayinyuan
--  发布时间:2009/9/3 12:01:00
--  
以下是引用狐狸爸爸在2009-9-3 11:34:00的发言:
别说60个表,在电脑开60个网页,看看后果会怎样。



   就是啊,这就是狐表的问题所在!
   一个项目中有60个表并无什么不对,关键是在狐表中只要打开项目,立即加载这60个表,所以造成了这个问题(打开项目过慢甚至崩溃)。

     我们讨论的问题,就是一个项目中表较多时,不要一次加载这60个表,而是先不加载或者只加载部分表,等到需要时再加载表。
 
    如果按贺老师的意思,一个项目中的表最多有多少个合适?或者说表较多时不能用狐表设置项目?好像在一个复杂的项目中,有60个以上的表是很正常的。我看其他开发工具开发的软件,从来没有在打开项目时立即把所有的表都加载到内存中的。

[此贴子已经被作者于2009-9-3 12:02:43编辑过]