Foxtable(狐表)用户栏目专家坐堂 → 意外发现,压缩项目确实能够大幅度提高某些方面的性能


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

主题:意外发现,压缩项目确实能够大幅度提高某些方面的性能

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
意外发现,压缩项目确实能够大幅度提高某些方面的性能  发帖心情 Post By: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的差距这么大,这也是我没有考虑往压缩项目。

看来定期压缩项目以及外部数据源是应该,建议在非工作时间由专门人员执行。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/14 15:10:00 [显示全部帖子]

1、不需要频繁压缩项目的,我测试的只是一个极端,我用5000行测试的时候,就看不到差别。
2、SQL SERVER本身有压缩命令,在企业管理器应该可以通过设置达到定期压缩的目的
3、SQL SERVER的压缩,应该不会导致这么大的性能差别,我想这种差距是Access独有的。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/15 7:29:00 [显示全部帖子]

不能自作主张的,多用户的时候,没有办法判断系统是否空闲。
还是手工操作比较好。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/15 8:21:00 [显示全部帖子]

以下是引用听雪落的声音在2009-6-15 8:11:00的发言:
昨天也有一个意外发现,删除关联速度成几十倍提升


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


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/15 8:41:00 [显示全部帖子]

以下是引用听雪落的声音在2009-6-15 8:30:00的发言:

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

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


这个没有固定的定律,具体测试,看看何种方案最适合你的项目。

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

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/15 9:34:00 [显示全部帖子]

以下是引用卟离卟弃在2009-6-15 9:24:00的发言:

就是说用ACCESS这种数据库,应该定时进行压缩罗。。
你所讲的专业人员压缩是个什么意思
在狐表中单击压缩项目不就行了吗?
还是其它什么?


不是专业人员,是专门人员。
对于内部表,就是用压缩项目命令就行。

[此贴子已经被作者于2009-6-15 9:34:02编辑过]

 回到顶部