我有一个MS访问数据库,包含35个链接表,一些查询和另外35个报告。
数据库中没有物理表,因为其表的所有数据都来自链接的后端MS Access数据库。现在的问题是,前端数据库大小超过1 GB。怎么样和为什么?我该如何解决?
答案 0 :(得分:1)
首先,请尝试HansUp的建议。
但是,如果这并没有像你期望的那样缩小它,那么试试这个:
制作一个名为decompile.bat
的文件。在其中,输入命令:
"C:\Program Files (x86)\Microsoft Office\Office14\MSACCESS.EXE" "C:\Your\Path\To\YourFrontEnd.accdb" /nostartup/decompile
编辑适合的路径。将此批处理文件放在与前端相同的目录中。
使用:
decompile.bat
你应该注意到你的前端要小得多。
答案 1 :(得分:1)
那是很晚的加法,但我想知道为什么没有人指出问题的原因!微软表示原因是:
如果您每次循环都没有释放记录集的内存 通过记录集代码,DAO可以重新编译,使用更多的内存和 增加数据库的大小。
解决方法:
使用Recordset对象的Close方法显式关闭 当您不再需要记录集时记录集的内存。如果 数据库的大小已增加,因为您没有使用“关闭” Recordset对象的方法,可以减小 通过运行“压缩和修复”实用程序(在“工具”上, 菜单)。
https://docs.microsoft.com/en-us/office/troubleshoot/access/prevent-database-bloat-dao
我曾经使用过“数据库工具”功能区中的“压缩和修复工具”,它确实将几乎为空的数据库的大小从2.0 GB(最大大小)减少到3.41 MB! >
答案 2 :(得分:0)
我只是碰到了这个。我们使用访问数据库来存储项目数据。在大多数情况下,它们保持不到一兆字节。然后,我从一个客户那里得到一个问题,那就是服务器上的存储成本正在上升,因为某些数据库正在增长到数十兆和几百兆。所以我搜索了我的东西,发现了一个数据库!
我正在使用Office 7,并且可以确定它仍在365中。
解决方案:
通过访问中的Office按钮(左上方)。转到管理->备份数据库。对我来说,它将那个1 gig数据库复制到720k数据库。而且,当然,它可以很好地打开并且所有数据都在那里。我发现紧凑和修复与备份
的结果相差甚远我不知道为什么微软允许这种情况发生,我找不到合理的解释。