如何避免Access数据库膨胀?

时间:2012-01-05 23:42:21

标签: ms-access

我正在编写Access数据库,但我意识到它的大小在使用时会急剧增加,增长到数百MB。压缩后,尺寸恢复到5MB。通常会导致这种尺寸增加以及如何避免它?

4 个答案:

答案 0 :(得分:2)

如果你真的从5MB到数百MB可以压缩到5 MB,那么正如其他人提到的那样你是在插入和删除大量记录。这通常是因为您需要创建临时表。

大多数时间临时表在技术上不是必需的,可以通过查询查询或使用动态SQL来删除它们。如果你不能这样做,那么创建一个你链接到的单独的临时数据库可能是值得的。

重要的是要注意每个用户都有自己的临时数据库副本,并且在会话开始或结束时都会被销毁。

答案 1 :(得分:2)

您也可以关闭行锁定。我有一个大约5兆的进程和文件。 当您运行简单更新时,它会膨胀到125 Megs。如果关闭行锁定,则文件根本不会随更新而增长。 所以你想要禁用行锁定 - 这将大规模减少膨胀。您要取消选中的选项是以下选项: 文件 - >选项 - >客户端设置,然后取消选中

[x]使用记录级锁定打开数据库

enter image description here

Access没有真正的行锁定,但确实有所谓的数据库页锁定。因此,以迂回的方式,如果您打开行锁定,那么Access只会将所有记录扩展到一个数据库页面的大小 - 结果是大量膨胀。尝试禁用上述选项。 (您必须退出+重新启动Access以使此设置更改生效)。

答案 2 :(得分:1)

大量添加和删除记录是导致数据库膨胀的一个原因。如果这是您的开发数据库,​​那么当您反复编译并保存您的vba项目时,数据库膨胀是不可避免的;在最终用户数据库中,膨胀可能不那么明显。

答案 3 :(得分:1)

在Access数据库中执行任何操作都会导致文件大小增加。我有几个数据库在早晨进程运行时膨胀到接近2GB的大小。此过程会插入,更新和删除数据。

使用MS Access时,最重要的一点是使用紧凑和修复。这将缩小数据库的大小。

我不担心数据库会增长到几百MB,这对于Access来说仍然很小。