压缩和修复数据库

应用对象
Microsoft 365 专属 Access Access 2024 Access 2021 Access 2019 Access 2016

数据库文件会在使用过程中快速增长,有时会影响性能。 它们偶尔也会损坏或损坏。 您可以使用 压缩和修复数据库 命令来防止或修复这些问题。 压缩过程并不压缩数据,而是通过消除未使用的空间来缩小数据库文件。 “压缩和修复数据库”命令还帮助提高数据库的性能。

提示拆分数据库有助于 防止数据库文件损坏,并通过将数据保存在用户不直接访问的单独文件中来限制数据丢失。

您要做什么?

压缩和修复数据库的方法
开始之前
在数据库关闭时压缩和修复数据库
压缩并修复已打开的数据库
压缩和修复未打开的数据库
当 Access 提示时压缩和修复损坏的数据库

为什么应该压缩和修复数据库
数据库文件随着使用而增长
数据库文件可能会损坏

压缩和修复数据库的方法

压缩和修复数据库的方法有多种。 一种常见做法是在数据库关闭时自动压缩和修复数据库。 此外,在打开数据库时以及在未打开的数据库上,可以手动运行“ 压缩并修复数据库 ”命令。

开始之前

在开始压缩和修复操作之前,请执行以下操作:

  • 创建数据库的备份 在修复过程中,Access 可能会截断损坏的表中的某些数据。 有时可以从备份中恢复此数据。 除了常规备份策略外,还应在使用 Compact and Repair Database 命令之前立即进行备份。 有关详细信息,请参阅 使用备份和还原过程保护数据
  • 获取对数据库的独占访问权限 压缩和修复操作要求对数据库文件进行独占访问,因为此操作可能会中断其他用户。 如果计划运行压缩和修复操作,应通知其他用户,以便他们避免在该时间段内使用数据库。 有关详细信息,请参阅 打开现有 Access 数据库
    通知用户应避免使用数据库多久。 如果定期运行压缩和修复操作,请记录所花的时间。 然后,可以作出更精确的估计,让其他用户知道应该避免使用数据库多久。
  • 获取对数据库的足够文件权限 如果您没有足够的权限,并且需要压缩和修复数据库,请与系统管理员联系以获取帮助。 有关详细信息,请参阅 Windows 中通过网络共享文件的更改

返回页首

数据库关闭时自动进行压缩和修复

如果想要在数据库关闭时自动压缩和修复数据库,可选择“关闭时压缩”数据库选项。 设置此选项仅影响当前打开的数据库。 为要自动压缩和修复的每个数据库单独设置此选项。 在多用户数据库中,您可能不想设置此选项,因为它会暂时中断数据库的可用性。

  1. 选择“文件”>“选项”
  2. 在“ Access 选项” 对话框中,选择 “当前数据库”。
  3. 在“应用程序选项”下,选择“关闭时压缩”复选框。
  4. 选择“确定”。
  5. 关闭并重新打开数据库以使选项生效。

返回页首

手动压缩和修复已打开的数据库

  • 选择“文件>信息>”“压缩 & 修复数据库”。
    Access 在同一位置创建压缩和修复后的数据库的副本。

返回页首

手动压缩和修复未打开的数据库

如果无法直接打开 Access 数据库,请使用此过程。

  1. 确保当前没有其他用户在使用数据库文件。
  2. 启动 Access。
  3. 在模板页面上,双击“ 空白数据库”。
  4. 选择“ 文件>关闭”
  5. 选择 “数据库工具”“>压缩并修复数据库”。
  6. 在“压缩数据库来源”对话框中,导航到要压缩和修复的数据库并进行双击。

Access 在同一位置创建压缩和修复后的数据库的副本。

返回页首

当 Access 提示时压缩和修复损坏的数据库

尝试打开损坏的数据库文件时,如果 Access 提示你压缩和修复数据库,请选择 “是”。 可能发生两种情况:

  • 如果 Access 完全修复了损坏的文件,将显示消息说明修复成功,并且你应检查数据库内容,确保所有内容均正常。
  • 如果 Access 只取得了部分成功,它会在名为 MSysCompactErrors 的系统表中跟踪无法修复的数据库对象。 Access 将在数据表视图中打开 MSysCompactErrors 表。 如果你在数据库被损坏之前有一个以前的备份,你可以使用 MSysCompactErrors 表确定要将哪些对象导入到你修复的数据库中。 若要显示系统表,请右键单击导航标题栏,然后在 “导航选项 ”对话框中,选择“ 显示系统对象”。

返回页首

为什么应该压缩和修复数据库

本概述介绍使用“压缩和修复数据库”命令可如何帮助防止并更正有时会影响数据库的以下问题:文件在使用过程中增大并损坏。

数据库文件在使用过程中增大

添加和更新数据,以及更改其设计时,数据库文件将变大。 这些增长有些来自新数据,有些来自其他来源:

  • Access 可创建临时的隐藏对象来完成各种任务。 Access 不再需要这些临时对象时,它们有时仍会保留在数据库中。
  • 删除数据库对象时,不会自动回收该对象占用的磁盘空间 - 即使对象被删除,数据库文件仍使用该磁盘空间。

随着其余临时对象和已删除对象逐渐占据数据库文件,会削减其性能。 对象打开速度可能变慢,查询运行时间可能比正常情况的长,而常规操作似乎普遍变慢。

返回页首

数据库文件可能损坏

在特定情况下,数据库文件可能会损坏。 如果一个数据库文件通过网络共享,并且多名用户同时直接处理文件,则该文件有可能会损坏。 如果用户经常编辑长文本字段中的数据,则损坏的风险会稍大一些,并且风险会随着时间的推移而增加。 可使用“压缩和修复数据库”命令降低此风险。

通常,这种类型的损坏是由 Visual Basic for Applications (VBA) 模块的问题导致的,不会造成数据丢失的风险。 然而,这类损坏确实可能损坏数据库设计,例如 VBA 代码丢失或窗体不可使用等。

数据库文件损坏很少会导致数据丢失。 通常,这种损失仅限于单个用户的最后一个操作,也就是对数据的单次更改。 当用户开始更改数据且更改被中断时(例如由于没有网络服务),Access 会将数据库文件标记为“已损坏”。 文件可被修复,但修复完成后,可能会丢失某些数据。

另请参阅

通过备份和还原过程保护数据

在 Access 中设置常规用户选项