编程开发 > ACCESS > 文章内容

Access教程:给你的数据库文件减肥

2017-7-26编辑:daibenhua

  在数据库的设计过程中经常要添加、删除数据库对象,这会使数据库内部留有许多碎片,不能有效地利用磁盘空间,文件会逐渐增大。这有点象文件系统经过多次的增删操作,会导致文件碎片,浪费磁盘空间,而且读写效率降低。

  你可以用 Access 提供的工具来压缩数据库,它将重新安排数据库文件在磁盘中保存的位置,并释放磁盘空间,通常文件的容量会缩小成原来的几分之一。

  Access 内置了压缩数据库的功能

  但 Access 文件的增大十分夸张,它可能会让文件增大十倍,让它臃肿地呆在你的硬盘里。这好象是微软的通病。你可以打开一个Word文件,添加几个空格再把它们删了(实际文件的内容没有改变),然后保存,你会发现它比刚才大了些,比如一个45k的文件经过几次这样的更改后文件大小变成49.5k→58.5k→68.5k,实在不知道往文件里面又存了些什么。所以我们有理由怀疑 Access 数据库压缩的效果。

  一年以前我编了一个统计系统,用了大概3个月,几乎每天都在修改,几天就压缩一次,最后这个 Mdb 文件有20M大,即使是 Mde 文件也有8M多,我乐坏了,以为自己也能设计大型程序了。今年这个程序要升级,可是源程序让我弄丢了(心疼呀),于是下定决心,重新编了一个。功能几乎没有变,最后的 Mdb 文件大小只有2M多,我的天!简直不敢相信!原来 Access 文件改动得越多压缩得越多文件就越大,什么逻辑!

  还有,如果你的 Mdb 文件太大了,可以建立一个新的空数据库,把原来的数据库全部内容都导入到这个新数据库里,再看看,文件一定小了许多。我做了一个实验,一个640k的 Mdb 文件,压缩数据库后变成240k,再建一个新数据库,把它全部导入,就只有60k了。

  先谈谈DllHotst进程消耗cpu 100%的问题:

  服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的,出现这种问题的服务器,CPU会突然一直处

  100%的水平,而且不会下降。查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种

  情况下,只好重新启动IIS服务,奇怪的是,重新启动IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了。

  直接原因:

  有一个或多个ACCESS数据库在多次读写过程中损坏, MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其他线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST中。

  解决办法:

  把数据库下载到本地,然后用ACCESS打开,进行修复操作。再上传到网站。如果还不行,只有新建一个ACCESS数据库,再从原来的数据库中导入所有表和记录。然后把新数据库上传到服务器上。

  本页介绍简单的压缩与修复功能:

  1。以问题数据库文件jit8.mdb为例,原文件大小为17.2MB 如图:

  

  2。用本地安装的office access 2003打开此数据库文件jit8.mdb,或者直接双击数据库文件。

  这个时候会弹出一个安全警告,直接点“打开”。

  

  3。 这时候会出现关于数据库结构的视图出来:

  

  4。执行上面的“工具” --- “数据库实用工具”---“压缩和修复数据库” 。如图:

  

  5。 当执行完毕后,再再次回到 1。表示完成操作,可以关闭access 2003了。这个时候再看下数据库大小 如图:

  

  怎么样,惊奇吧,原本17.2MB的数据库被这么轻易的两下减少到还有5.4MB,再传到空间里,是不是感觉速度快多了。

  6。也可以借助第三方辅助工具进行压缩与修复

Access教程:随机提取N条记录

热点推荐

登录注册
触屏版电脑版网站地图