以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  意外发现,压缩项目确实能够大幅度提高某些方面的性能  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=3142)

--  作者:狐狸爸爸
--  发布时间:2009/6/14 14:14:00
--  意外发现,压缩项目确实能够大幅度提高某些方面的性能
这个周末过得一点不痛快,因为内部表的Load性能大大地低于外部表,速度的差别竟然高达10倍。
绞尽脑汁,尝试了很多方法,所有可能的方面都尝试了,还是解决不了问题,正打算放弃的时候,无意中压缩了一下项目,结果Load的性能和外部表一样快了。
我是这么测试的,新建一个内部表,增加5万行数据,然后在命令窗口执行下面的代码:

dim s as date =date.now
currenttable.DataTable.Load()
output.show((date.now - s).TotalSeconds)

费时大概是50秒,如果我压缩项目后执行,费时大概是4.5秒。

我不能理解的是为啥打开文件的速度没有什么差别,唯独Load的差距这么大,这也是我没有考虑往压缩项目。

看来定期压缩项目以及外部数据源是应该,建议在非工作时间由专门人员执行。
--  作者:yangming
--  发布时间:2009/6/14 14:20:00
--  
好消息,呵呵
--  作者:kylin
--  发布时间:2009/6/14 15:06:00
--  
如果让FoxTable能够聪明地自动压缩项目,那就更好了,既然压缩项目是很重要的。
还有对于FoxTable不支持直接压缩SQL Server,我有点点不满的,呵呵
这个建议如何?
[此贴子已经被作者于2009-6-14 15:06:59编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/6/14 15:10:00
--  
1、不需要频繁压缩项目的,我测试的只是一个极端,我用5000行测试的时候,就看不到差别。
2、SQL SERVER本身有压缩命令,在企业管理器应该可以通过设置达到定期压缩的目的
3、SQL SERVER的压缩,应该不会导致这么大的性能差别,我想这种差距是Access独有的。
--  作者:易狐
--  发布时间:2009/6/14 15:11:00
--  
那您就直接让程序在后台空闲时,自作主张悄悄压缩,省得大家总惦记他,不知可否?
--  作者:kylin
--  发布时间:2009/6/14 16:01:00
--  
以下是引用狐狸爸爸在2009-6-14 15:10:00的发言:
1、不需要频繁压缩项目的,我测试的只是一个极端,我用5000行测试的时候,就看不到差别。
2、SQL SERVER本身有压缩命令,在企业管理器应该可以通过设置达到定期压缩的目的
3、SQL SERVER的压缩,应该不会导致这么大的性能差别,我想这种差距是Access独有的。

图片点击可在新窗口打开查看


--  作者:狐狸爸爸
--  发布时间:2009/6/15 7:29:00
--  
不能自作主张的,多用户的时候,没有办法判断系统是否空闲。
还是手工操作比较好。
--  作者:听雪落的声音
--  发布时间:2009/6/15 8:11:00
--  
昨天也有一个意外发现,删除关联速度成几十倍提升
--  作者:狐狸爸爸
--  发布时间:2009/6/15 8:21:00
--  
以下是引用听雪落的声音在2009-6-15 8:11:00的发言:
昨天也有一个意外发现,删除关联速度成几十倍提升


这是正常的,关联不能太多太复杂,
引用父表或子表的表达式列,可以动态增加,需要的时候再用代码增加。


--  作者:听雪落的声音
--  发布时间:2009/6/15 8:30:00
--  

动态设置关联后,发现表达式不进行计算。
不知道哪里的原因。
在考虑是否抛弃关联,采用datacolchanged来填写数据。
哪个更好点儿,同志们给个建议。

[此贴子已经被作者于2009-6-15 8:35:26编辑过]