Foxtable(狐表)用户栏目专家坐堂 → 打开狐表项目的速度,以及动态生成表、动态绑定表的问题?


  共有44971人关注过本帖树形打印复制链接

主题:打开狐表项目的速度,以及动态生成表、动态绑定表的问题?

帅哥哟,离线,有人找我吗?
易狐
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:147 积分:947 威望:0 精华:0 注册:2009/5/12 9:43:00
  发帖心情 Post By:2009/9/4 17:55:00 [显示全部帖子]

以下是引用blackzhu在2009-9-4 15:13:00的发言:
 因为打开项目的速度慢,我把我的系统中所有的关联都取消了。利用动态加载表的方式加载我要的数据,基本可以做到关联表一样。报表采用直接引用的方式。现在打开项目的速度已经非常好了,我的电脑是狐爸要我扔掉的那台。


        赞成!利用多个外部数据源来分别放这60多个表,再根据系统需要,再实时的时候,利用动态加载外部数据源和动态加载外部表并动态绑定、动态关联,会让foxtable运行起来很轻松。
        我在设计一个系统的时候,我的一个窗口有八十多个控件,而这样的窗口在一个表有11个,但考虑到项目生成时首先要生成窗口,会影响系统的运行速度,我采取了在窗口动态删除,动态添加控件(添加时定位即可),动态绑定或赋值,我将这样的11个窗口省到了1个,始终用这一个窗口再做所有事,这样的话,项目在启动时不需要生成那11个窗口,运行起来启动速度与空白狐表系统无异,这仅是一个用多写一点代码换来狐表运行性能不受影响的思路,供参考,包括表也一样,很多表没必要再启动时生成,可以写在某一个需要调用该表的最前面,判断一下该表是否存在,存在直接调用,不存在动态添加,随着操作进程的延长,这些表都在不知不觉在进程中逐个添加进来,这样做的目的就是将狐表启动时的重负荷分散到各个环节,这样的话,用户根本没有任何慢的感觉,老兄可要三思老六说您系统设计结构不合理的话,一味地要求狐表将所有功能都集成在系统中,那是不现实的。
         我有一个Excel文件,大家都知道,普通的电子表格,运行速度很快,但这个文件仅仅11个表,各表2000多行,但是各表、各单元格之间的引用、计算公式太多,修改其中某一个位置,还得等一会儿才能刷新,感觉也非常慢。

[此贴子已经被作者于2009-9-4 17:56:54编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
易狐
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:147 积分:947 威望:0 精华:0 注册:2009/5/12 9:43:00
  发帖心情 Post By:2009/9/4 20:14:00 [显示全部帖子]

以下是引用hnaysx在2009-9-4 19:36:00的发言:
呵呵 如果我不使用外部表 仅仅是内部表 如何做到不加载表?


      呵呵,有路不愿意走,谁也没办法,比如在电脑信息技术飞速发展、已全天下普及化的今天,还有一些老会计说,我不用电脑,就用手工记账加自己的大脑,一样是被同行尊重的老前辈!图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
易狐
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:147 积分:947 威望:0 精华:0 注册:2009/5/12 9:43:00
  发帖心情 Post By:2009/9/5 9:08:00 [显示全部帖子]

以下是引用cpayinyuan在2009-9-5 7:11:00的发言:

     
     贺老师,这次您的分析依然是完全错误的!我的项目中虽然有大概60个表,但只有一个主界面窗口是主窗口,除此之外没有再用一个主窗口代替表,我的项目中需使用表的地方全部使用DataList,而且,在项目中我只有大概10个关联(我接受了您的建议,能不用关联的地方尽量不用关联)。

 

    所以,既然贺老师的分析是错误的,所以,我对现在的现像就更不理解了。为什么C版的项目有60个表启动就很快,但我的项目有60个启动就非常慢,经过我分析,现在最大的区别只有三个:(1)我的项目中窗口比较多,事件代码也比较多(有表事件,也有窗口事件和系统事件);(2)我的表结构可能相对复杂一些(有些表的字段比较多)。(3)我用的外部数据源SQL server(但我是在局域网中登录,网速绝对没问题)。如果不是窗口事件的问题,那就请我们共同分析一下,为什么都是60个表启动速度差别这么大,到底是什么问题?

[此贴子已经被作者于2009-9-5 7:40:53编辑过]



        呵呵,发上您的文件才能进一步分析,否则大家只是蒙着说,也难怪老六也蒙不上,他只不过是在分析可能造成您的系统慢的原因之一,不看您的东东,自然命中率不高,您说得对,同样的foxtable做的东西,为什么人家那你快?
       老六好像说过DataList是鸡肋(foxtable是他一个代码一个代码写出来的,没有人能比他更了解foatable的强弱点到底在什么地方),已经是面临切除的“阑尾”,可您偏偏要认为他是整个“消化系统”的主要“器官”,是不是正好在体验鸡肋的味道?只有您和老六知道!估计这方面老六也不会进一步的改进,趁早改一改又何妨?CZY版主的为什么这么快,因为他正好避开了这块“鸡肋
” !
        这一点“在SQLTable出现之前,如果在打开项目时不一次全部打开,怎么建立表的事件代码(我的大部分表中都有事件代码)?”恐怕是cpayinyuan老兄的问题,基础性数据的录入要尽量整合到极少的表,没必要60多个表都需要去进行修改和录入,这样的话就好办了,作为统计表,尽可能用统计代码,一般不要用事件代码,理论上是可以做到的。话说回来,如果是统计表,您的系统更不应该有这么多表,只要不需要手工录入和修改的统计表,完全可以用临时表来完成,说实在的,您都可以将需要手工录入的数据尽可能整合到一个或少量的表中,调整表结构即可,有了临时表的统计功能,所有统计表都可以成为实际上只有一个临时表在反复使用,不停地动态删除、添加,按照您的需要修改和设置表结构)。
        还有您说过您的表、窗口控件都有很多事件代码,但是,如果是绑定到字段的控件(比如:文字框),完全可以只有表或文字框之间选择其一设事件代码,避免重复执行,降低效率。

        原因很多很多,这些都可能是已经存在的问题,看不到文件我只是猜猜而已!


 回到顶部
帅哥哟,离线,有人找我吗?
易狐
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:147 积分:947 威望:0 精华:0 注册:2009/5/12 9:43:00
  发帖心情 Post By:2009/9/5 10:56:00 [显示全部帖子]

以下是引用狐狸爸爸在2009-9-5 9:05:00的发言:
我以前说过:DataTable也有Fill方法,Table的Fill其实调用的就是Datatable的Fill
以后可以公开这个方法,这样一个DataTable处理任意多个后台的表。

楼主的问题,根本就不涉及性能,只是设计方案好否的问题。
60个表出现在界面,还有10个关联,这该有多少个Table?而且还是网络环境,无论从哪个角度看,这都是一个不合理的设计方案,用这样极端的例子来怀疑Foxtable的性能,是很不恰当,很容易误导人的。

[此贴子已经被作者于2009-9-5 10:19:29编辑过]



         

     唉!我怎么没有学到这个Datatable的Fill的方法呢!别扯这个了,赶紧更新帮助吧,我等着学习新帮助!同时抓紧出一个国庆60周年纪念版,说不定我还可以借这个国庆60周年大庆之际,得到您的优惠或者得个什么国庆奖励什么的!

[此贴子已经被作者于2009-9-5 10:57:32编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
易狐
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:147 积分:947 威望:0 精华:0 注册:2009/5/12 9:43:00
  发帖心情 Post By:2009/9/5 12:08:00 [显示全部帖子]

以下是引用reachtone在2009-9-5 11:05:00的发言:
    呵呵,没想到周五晚上没上来,就出了这么个热帖,也跟着说说我的看法吧。在用foxtable之前,我也用过其它的开发工具,有比较才有发言权嘛:
    从foxtable公测开始,我就一直在关注。真正将其投入使用,应该是今年6月中下旬以后。所以,我真正使用foxtable的时间也不过才2个月左右。为什么选择foxtable,我的理由是这样的:
    1、foxtable已经内置了大量的方法与函数,基本涵盖数据处理的方方面面,开发者可以拿来就用,省去了N多的时间。
    2、各种方法中,不仅有针对已加载数据的,还有直接针对后台的。可以毫不夸张的说,等foxtable正式发布以后,很多熟悉sql语句的人基本不要学习foxtable的系统知识,仅用一个sqlcommand就可以做出非常高效的、直接针对后台的查询系统来。因为查询结果出来以后,菜单上的统计、打印、excel报表等直接就可以用了,还有比这再方便的开发工具吗?
    3、正是因为以上两点,foxtable的高效是其它同类开发工具无法比拟的。这里的高效,不仅有项目开发效率的高效,还有项目完成以后运行的高效。我正式学习foxtable也不过2个月的时间,到本月20号就将完成并交付第一个商业项目,当然比较高效了。而且,这个项目将直接管理sql数据库中的数百万条数据,处理效率不高效,我敢用它吗?
    4、老六的敬业精神以及对细节追求的完美让人感动,这从foxtable近期频繁的更新可以看出。包括换心这件事,本来大家都觉得挺好了,但老六还是坚持花挺长的时间把它换下来,可见老六对产品品质的追求!至于细节方面,这从“excel报表”和“分组与交叉统计”的功能上就能看出来。我曾建议老六将这两块功能单独做成dll出售,可以说,这两个功能如果单独出售,其dll售价就会大大高于foxtable即将公开发售的商业版售价。所以,foxtable是超值的!
    以上就是我选择foxtable的原因。
    另外有必要说一下,我在项目中从来没有使用过关联。一是因为之前没有使用关联的习惯,二是非常担心关联所导致的table增长。我在项目中对关联的处理都是用代码实现的。还有就是,在设计项目时,一定要将所用到的datatable的加载条件设置为空,打开项目时就不会加载任何数据了,速度非常快。再说,项目开始运行时,本来就只要显示菜单之类的,也没必要加载任何数据。
    C兄也是论坛上的热心之人,如果你在改进之后、打开项目的速度还是非常慢,建议你将项目发出来让大家一起诊断一下。如果涉及商业秘密,单独发给老六研究一下也行。不见例子,谁知道问题在哪里呢?



      赞成,不过老六既有追求品质的个性,就不会擅自出售dll文件,这才是他攥在手里的一张牌,虽然这仅是狐表的N张牌之一,但这毕竟是品牌,如果要打品牌战略的话,暂时都攥一攥也好!

[此贴子已经被作者于2009-9-5 12:16:18编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
易狐
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:147 积分:947 威望:0 精华:0 注册:2009/5/12 9:43:00
  发帖心情 Post By:2009/9/5 17:18:00 [显示全部帖子]

应该斟酌斟酌!

 回到顶部