Office中国论坛/Access中国论坛

标题: 减小(缩小)ACCESS数据库体积(大小)的一个方法 [打印本页]

作者: funhere    时间: 2010-5-18 22:51
标题: 减小(缩小)ACCESS数据库体积(大小)的一个方法
  中心内容:可以通过设置“数字格式”字段的“数字格式”(字节、整型、长整型、单精度型、双精度型、小数)来减小数据库的大小。
   
    想到此方法的经过:
    我在网上看到很多关于减小ACCESS数据库的方法是利用ACCESS自带“的压缩修复数据库”来实现。但是对于我在前段时间工作中用的数据库来说,此方法也无能为力,特别是每次操作非常耗时耗力,因为我的数据库确实有很多数据。
    于是我只能想其它方法。我的数据库源来自一个ADP数据库,之前的操作都是先新建一个空的ACCESS数据库,然后把ADP中的表直接拖进去,每次通过这个方法导出数据,基本都会超过2G,从而导致ACCESS拖入数据失败。
     于是乎,我新建一个ACCESS数据库,做好一个目标表的空表,修改空表的表结构。接下来的一步非常关键,除了设置合适的文本字段的大小,数字字段大小的设置也很重要,而且是非常重要。因为在我的数据库中,大部分字段都是数字内容。而且ACCESS默认数字字段的数字格式都是小数,占位12个字节,因此占了很大的数据库空间。我们可以根据实际需要设置数字字段的类型。(可能因为我做的是物流行业,所以数据库的数字字段特别多。)  继而在完成以上操作后,做好与ADP数据库的链接表,再通过查询把ADP中的源数据追加到ACCESS数据库的空目标表中。
     通过以上的操作,我再导出的数据均能正常导出,不会因为数据量过大而失败。并且,导出后的数据大小都在1G左右,比之前的数据库至少缩小了一倍。
   
    这就是我在使用ACCESS过程中碰到的一个困难,并且通过思考、实验想到的一个解决办法,在此共享出来,希望能对大家有所帮助。
   

附:数字格式的不同类型所占用的空间大小(具体可查看ACCESS的帮助文件)
• 字节——用于范围在 0 到 255 之间的整数。存储要求为一个字节。
• 整型——用于范围在 -32,768 到 +32,767 之间的整数。存储要求为两个字节。
• 长整型——用于范围在 -2,147,483,648 到 +2,147,483,647 之间的整数。存储要求为四个字节。
• 单精度型——用于范围在 -3.4 x 1038 到 +3.4 x 1038 之间且最多具有七个有效位数的浮点数值。存储要求为四个字节。
• 双精度型——用于范围在 -1.797 x 10308 到 +1.797 x 10308 之间且最多具有 15 个有效位数的浮点数值。存储要求为八个字节。
• 小数——用于范围在 -9.999... x 1027 到 +9.999... x 1027 之间的数值。存储要求为 12 个字节。

    或许这个方法很小儿科,希望见谅;或许你有更好的方法,希望共享;或许你真的用上了,谢谢,我没白写。

最后加一句,说实话,我希望大家能探讨一下从哪些方面,通过哪些方法,有哪些思路,可以减小数据库的大小。
作者: mrd_wxqs    时间: 2010-5-19 09:08
楼主,怎么不把数据拆分放在SQL后台呢,这样前端的Access就不会有那么大了。
作者: funhere    时间: 2010-5-19 11:02
三个原因:
1、数据是为各部门使用的基础数据,所以经常要带到外地使用,放在SQL里的话带不走
2、会使用SQL的人少之又少,所以只能把数据放到ACCESS里面给他们用
3、我使用了一些特权,其它的人不能直接用SQL服务器里的数据
作者: asklove    时间: 2010-5-19 15:04
学习一下前辈的宝贵经验
作者: huangqinyong    时间: 2010-5-20 08:49
估计LZ没有设置——关闭时自动压缩的功能吧
作者: t小宝    时间: 2010-5-20 16:51
为字段选择合适的数据类型是最基本的要求
作者: funhere    时间: 2010-5-24 16:32
估计LZ没有设置——关闭时自动压缩的功能吧
huangqinyong 发表于 2010-5-20 08:49


关闭时自动压缩已经对我没有用了
1、数据在导入的时候就有2G多的数据,还没等我压缩,就已经导不进去了
2、数据库非常大,每次自动压缩,耗时
3、根本压缩不出什么东西了,我的数据库里就一个表




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3